【PHP】質問スレッド Part4
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/06/02 15:32ID:f3afNVBG<<参考>>
■本家
http://www.php.net/
■日本 PHP ユーザ会
http://www.php.gr.jp/
■PHP マニュアル
http://www.php.net/manual/ja/
■PEAR マニュアル
http://pear.php.net/manual/ja/
過去スレ, 関連スレは>>2を見よう。
0756750
02/08/26 21:41ID:???テーブルは、できるだけ少ない方がイイに決まってる。
同じ構成のテーブルが千件あるだけで大問題だろう。
と言ってみるテスト
0757nobodyさん
02/08/26 21:43ID:???そのバラバラのテーブルをどうやって管理すんのよ。
テーブル名を管理するテーブルを作るのか?
訳分からんな。
0760nobodyさん
02/08/26 22:01ID:3hDPVfbtProcess java.lang.Runtime.exec (String[] command, String[] envp, File dir)
のように、プログラムを実行する際にプロセスの環境変数を設定する関数があるけど、PHPではそういう関数はないの?
exec ()やproc_open ()を当たってみたけど、それらしい物はないし.
0765nobodyさん
02/08/26 22:52ID:???ってことは、スレッドを管理するテーブルは結局作るわけですね。
757を読むと、スレッドを管理するテーブルすら作らなくてもいいよにと
思えたのでした。作らなくてもいいとはどこにも書いてないけどね。
だから確認したの。煽ってスマソ。
0766757
02/08/26 23:17ID:???スレッドを管理するテーブルを作るとは言ってないよ。
スレッド型掲示板っていっても色々あるから、
制限、表示方式等分からないと何とも言えんな。
0767nobodyさん
02/08/26 23:31ID:???確かに言ってないな。
スレッド毎にテーブルを作るのは論外としても、スレッド管理テーブルと
ログテーブルは別けちゃうよ。
各スレッドのレス数が、多くても数十って程度なら、いっしょにしても
いいか...
0769nobodyさん
02/08/26 23:47ID:???スレッド管理テーブルは、
スレ番号、スレタイ、スレ立て人、timestamp、...
ログテーブルは
スレ番号、本文、timestamp、....
766の言う通り形式によって違うだろうけど、
昔のhypernotes形式なら別でいいかと... ダメっすか?
0770757
02/08/27 00:19ID:???2chのようにスレッド全体に1つのタイトルがあって、
最初に表示されるページがスレッドタイトルの一覧を出すような形式の場合、
>>769
のような形式が考えられるだろう。
しかし、
本文一つ一つにタイトルがあるような場合、
最初に表示されるページをなるべく高速に出したい場合は
工夫が必要になる。
0771nobodyさん
02/08/27 00:36ID:BywL+zC1すごく基本的なことなんですが、1回の処理で複数のテーブルにアクセスすると遅くなったりしないんですか?
0773nobodyさん
02/08/27 09:40ID:29/b2lpR0774nobodyさん
02/08/27 10:52ID:Pwc6QKdg等はsleepしている間、かなりサーバに負荷がかかるんでしょうか?
また、これ以外、何時間後かに動作させるにはどうするいいんでしょうか?
0775nobodyさん
02/08/27 10:52ID:Pwc6QKdgスレ間違えました。。
0776nomony
02/08/27 10:57ID:L02RF0Lh使おうとするとno functionエラー出るし...
0777nobodyさん
02/08/27 11:43ID:/KR5b3gyそんな関数ありません
使えなくて当たり前
0778nobodyさん
02/08/27 13:24ID:ZUROk4Frこれって、法律的にどうなんでしょうね?
単なるリンク張りを自動的に行っている、と見るか
それとも、いわゆる「無断引用」に当たるのか。
//----------------------------------------------------------------
function NewsFromAsahi(){
$URL = "http://www.asahi.com/";
if( ($fp=fopen($URL,"r")) ){
for($phase=0;!feof($fp);){
$str = fgets($fp);
switch( $phase ){
case 0:
if( mb_eregi("<!--\ Start\ of\ Top\ 5\ -->",$str) ){
$HTML = $str; $phase = 1; }
break;
case 1:
$HTML .= $str;
if( mb_eregi("<!--\ End\ of\ Top\ 5\ -->",$str) ) $phase = 2;
case 2: break;
}
}
$HTML = mb_eregi_replace("<img[^>]+>","<li>",$HTML);
$HTML = mb_eregi_replace("<a[ ]+href=\"","<a href=\"".$URL,$HTML);
$HTML = "<dl>\n<dt> News from <a href=\"http://www.asahi.com/\">asahi.com</a>\n<dd>".$HTML."</dl>";
}
return( $HTML );
}
//----------------------------------------------------------------
詳しい人の意見が聞きたいです。
0779778
02/08/27 13:25ID:ZUROk4Fr上の関数は、asahi.comから最新ニュースへのリンクだけを抜き出すものです。
0780nobodyさん
02/08/27 13:40ID:???0781nobodyさん
02/08/27 14:54ID:JlzB8Squこれは動きますか?
0782nomony
02/08/27 16:17ID:L02RF0Lhmb_eregxってmb_ereg()等の事なんですがね...
0784nobodyさん
02/08/27 16:24ID:/KR5b3gyだったら、そう書け ex. mb_ereg(), mb_eregi()等って
4.2.xだったら、php.iniに
extension_dir = (drive letter):\(php_install_dir)\extensions
extension=php_mbstring.dll
を書く
0785nomony
02/08/27 16:29ID:L02RF0Lhそれは書いてある。
mb_ereg()は動かない(未定義関数エラーが出る)が、mb_send_mail()は動く
PHPマニュアルに「実験的なステータス」とある関数がどうやら使えないようなんだよね
0786784
02/08/27 16:48ID:/KR5b3gyスマソ
print_r(get_defined_functions());
に含まれてないね。
--enable-mbregexを省いて作成されているようだ。4.2.2-win版
0787784
02/08/27 16:54ID:/KR5b3gyこっちなら、よさそう
http://www.geocities.jp/rui_hirokawa/php/win/php-4.2.2-Win32-mb-1.0.lzh
0788nobodyさん
02/08/28 00:01ID:???と文字列の コアラ> を取りたいんだけど、どうすればいいの?
stripslashes では取れんのかな? 取り方おしえてください。
0792nobodyさん
02/08/28 01:32ID:rTh+CXwx質問の仕方がオコチャマだって…
0793初心者
02/08/28 03:35ID:ayLaxrUo<? phpinfo ?>
で表示される「Server API」が「CGI」なんですけど、これを
「Apache」と表示させるには(ApacheのモジュールとしてPHP4
を動かすためには)どうすればいいのでしょう?
くだらない質問かもしれませんがどうか教えてください。
よろしくお願いします。
0795nobodyさん
02/08/28 07:59ID:???コアラをパンダに変えるにはどうしたらいいのでしょうか?
0797tekitou ◆NM99TIzo
02/08/28 09:20ID:???0798nobodyさん
02/08/28 09:29ID:???0799nobodyさん
02/08/28 10:12ID:???0800nobodyさん
02/08/28 21:34ID:???Apacheを15分毎に監視し、応答がない等の正常ではない反応があった場合、
Apacheを再起動する。
そういうスクリプトを書くべし。
で、答えは?
0803nobodyさん
02/08/29 06:27ID:???いや、Win版で頼む。
UNIX版だとそーいうスクリプト(Perl)が多いな。
Win版Apacheでそういうのは見かけないのう。
0804nobodyさん
02/08/29 06:30ID:???んで、予定されたタスクでこれを15分間隔で実行。
fopenした時、unkoと言う文字列があればなにもしない。
unkoと言う文字列が取得出来ない場合、execでアパッチを停止、起動させる。
これで解決じゃん。
0805nobodyさん
02/08/29 14:49ID:???0806nobodyさん
02/08/29 17:39ID:???こんな使い方は(;´Д`)
Apache 落ちてても PHP は使えるだろ。
モジュールとしては使えないが・・・
/sapi/cliをコンパイルして
cronで15分毎に実行。
$sock = fsockopen("localhost",80, $errno, $errstr);
でsockがfalseだったら/usr/local/apache/bin/apachectl restartを実行
もしもっと確実に監視したいならHEAD / HTTP/1.0でも送信すればよろし
0810nobodyさん
02/08/30 06:14ID:???fsockopenならWin版PHPでも使えるね。
>もしもっと確実に監視したいならHEAD / HTTP/1.0でも送信すればよろし
それはどのようにして送信?
http://jp2.php.net/manual/ja/function.fputs.php
ちなみにWinなら再起動は
C:\Program Files\Apache Group\Apache\Apache.exe -w -n Apache -k restart
0812nobodyさん
02/08/30 13:44ID:IarIlbJG一旦認証して、色々なサービスに認証を引き継ぎたいです。
(シングルサインオンのようなイメージ)
よろしくお願いいたします。
0813nobodyさん
02/08/30 16:03ID:???http://pc.2ch.net/test/read.cgi/php/1030630239/l50
は削除依頼しましたか?
http://qb.2ch.net/saku/index2.html
0814nobodyさん
02/08/30 16:13ID:okP1fGcQの環境でGETは平気なんですがPOSTでデータが受け取れないです。
ようするに↓がちゃんと表示されないです。
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</head>
<body>
<form name="form1" method="post" action="<?print $PHP_SELF;?>" enctype="multipart/form-data">
<input type="text" name="file1"><br>
<input type="submit" name="submit" value="送信"><br>
</form>
<?
if($submit){
print $file1;
}
?>
</body></html>
PHP Version 3.0.9のほかのサーバでは大丈夫だったんですが・・・。
どなたかわかる人がいればお願いします!!!
過去ログを読みましょう。
$submit=$_POST['submit'];
$file1=$_POST['file1'];
0816nobodyさん
02/08/30 18:43ID:okP1fGcQregister_globalsはonで、$_POST["submit"]でやっても動かないって前提っす。
そもそもGETはうけとれます。
もしかしてファイルを受け取ろうとしてる?
0818山師さん
02/08/30 21:20ID:FsiYdmKt0819nobodyさん
02/08/30 22:08ID:???0821nobodyさん
02/08/30 23:47ID:???submitはボタンを押さないとpostされないんじゃないか。
テキストエリアでEnterキーを押して送信したら$submitにはなにも入りませんよ。
たしか...
0822nobodyさん
02/08/31 09:50ID:MUbldWggした方は神と呼ばせていただきますので。
0823nobodyさん
02/08/31 09:58ID:???0824814
02/08/31 11:09ID:McY4kGnjFile送信以前にPOSTがうけとれないんで
まずそれをどうにかしたくて・・・。
>819
ONです。
>821
submitボタン押して送信してます。
0825744
02/08/31 12:30ID:727MmemG遅レスすまそ。一応作ってみたけど、こんな感じでいいかな?
こっちの方がいいとかあったら、アドバイスプリーズ。
while(current($_POST)) {
$key=key($_POST);
$_GET[$POST] = mb_convert_encoding($_POST[$key],"EUC-JP");
next($_POST);
}
0826825
02/08/31 12:31ID:???while(current($_POST)) {
$key=key($_POST);
$_POST[$key] = mb_convert_encoding($_POST[$key],"EUC-JP");
next($_POST);
}
0827746
02/08/31 13:02ID:???ちゃんと処理されるんならそれでええやないの。
以下は未検証だけど、
foreach($_POST as $key => $value){
$_POST[$key] = mb_convert_encoding($_POST[$key],"EUC-JP");
}
で、どぉよ。
少しずつレパートリーを増やしていくしかないわなぁ。
0828746
02/08/31 13:07ID:???$_POST[$key] = mb_convert_encoding($value,"EUC-JP");
の方がいいかも。
0829nobodyさん
02/08/31 15:30ID:???「\」が2バイト目に来る文字列の時におかしくなんねー?
===== cut here =====
<FORM action="<?= $PHP_SELF ?>" method="POST" enctype="multipart/form-data">
<INPUT type="text" name="test" value="機能表示ソフトウェア">
<INPUT type="submit">
</FORM>
<HR>
<PRE>
<?= $_POST['test'] ?>
↓
mb_convert_encoding()
↓
<?= mb_convert_encoding($_POST['test'], 'EUC', 'SJIS') ?>
<HR>
php_version: <?= phpversion() ?>
magic_quotes_gpc: <?= get_magic_quotes_gpc() ?>
</PRE>
===== cut here =====
0830nobodyさん
02/08/31 15:55ID:???> magic_quotes_gpc: <?= get_magic_quotes_gpc() ?>
なんでおかしくなるのか、わかってんじゃねぁかよ。
0831nobodyさん
02/08/31 16:27ID:???いや、漏れはわかってるんだけど、お前等わかってますか?
ってゆーのと、あわよくば
magic_quotes_gpc = On
のままで回避できる方法が得られないかと(w
0832nobodyさん
02/08/31 20:36ID:???あんさんこそわかっとるんけ?
magic_quotes_gpc = On
が何するものかと知ってれば、その解決方法も判るじゃないかよ。
0833nobodyさん
02/08/31 22:08ID:???悪りぃ、確認不足やったわ。
化けた状態で stripSlashes() 効かないかと思ったら効いたわ。
よう考えたら、単に「\」が二倍になってんのを元に戻すだけやから
当然と言えば当然か。ちょっと勘違いしてたわ。
ってわけで、
$var = stripSlashes($_POST['test']);
$var = mb_convert_encoding($var, $internal_encoding, $input_encoding);
$var = addSlashes($var);
みたいに、一旦消し去ってから再追加で(゚Д゚)ウマー
0834nobodyさん
02/09/01 00:59ID:???これで問題の切り分けしてみろ。
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</head>
<body>
<form name="form1" method="post" action="<?print $PHP_SELF;?>" enctype="multipart/form-data">
<input type="text" name="file1"><br>
<input type="submit" name="submit" value="送信"><br>
</form>
<?
echo "file1 = ".$file1."<br>";
echo "GLOBALS[file1] = ".$GLOBALS[file1]."<br>";
echo "_REQUEST[file1] = ".$_REQUEST[file1]."<br>";
echo "_GET[file1] = ".$_GET[file1]."<br>";
echo "_POST[file1] = ".$_POST[file1]."<br>";
echo "submit = ".$submit."<br>";
echo "GLOBALS[submit] = ".$GLOBALS[submit]."<br>";
echo "_REQUEST[submit] = ".$_REQUEST[submit]."<br>";
echo "_GET[submit] = ".$_GET[submit]."<br>";
echo "_POST[submit] = ".$_POST[submit]."<br>";
if($submit){
print $file1;
}
?>
</body></html>
0835nobodyさん
02/09/01 09:59ID:sTyltltt50音順に並び替えたいのですが、
どのような方法があるのでしょうか?
0838814
02/09/02 15:35ID:9QT5bee6ありがとうございます。
やってみましたが全滅で一個もでません・・・。
0839nobodyさん
02/09/02 15:39ID:???http://php.weblogs.com/http_compression
結果は何も表示されない状態で、
header("Content-Encoding: gzip")
の部分をコメントアウトすれば圧縮された状態のものが表示されました。
perl にて同じようなことを行った際には問題なく意図どおりの結果を得られましたが
PHP ではうまくいかず悩んでおります。
http://www.php.net/manual/ja/function.gzcompress.php
も参考にしましたが、上記と同じく Content-Encoding: gzip を出力させると空白になります。
他に確認すべきことなどございますでしょうか。
PHP 4.1.2
Apache 1.3.23
zlib が使用可能なことは確認しました。
クライアントは Win2KSP3、IE6.0 です。
0841nobodyさん
02/09/02 19:15ID:???>GZIP による圧縮転送を行いたく
鯖側でgzipで圧縮するが、ブラウザ側では何も意識することなく表示する事を言っているなら、
スクリプトの頭(headerの前)で、ob_start ("ob_gzhandler"); と書けばよい。
これは、ココのユーザーノーツの中に(php、ブラウザのバージョンについても)書いてある。
http://www.php.net/manual/ja/function.ob-start.php
0842nobodyさん
02/09/03 01:33ID:???"file1 = "
とか
"GLOBALS[file1] = "
とかの文字列は出てるの?
あと環境は一般的なの?
OS,Webサーバ,PHPのバージョン,ブラウザの種類は?
0843839
02/09/03 13:39ID:???>>840
自前でサーバ管理をしておりませんので、ログの閲覧が出来ません。
>>841
>鯖側でgzipで圧縮するが、ブラウザ側では何も意識することなく表示する事
説明不測で申し訳ありません。行いたいことはおっしゃるとおりです。
ob_gzhandler にはメモリリークの問題があると以前に知り
現在は解決されているかどうかまで調べずじまいでした。
http://www.php.net/manual/ja/function.ob-gzhandler.php
上記の例1のコードでテストを行いましたが、状況は同じです。
phpMyAdmin でも ob_gzhandler を使用していたので、試してみたところ
同じように何も表示されないので、PHP等の設定に問題があるのかもしれません。
phpinfo() で見る限りデフォルト設定のままのようです。
もう少し検索してみる必要がありそうです。
お気づきの点がございましたらお教えいただけると幸いです。
0844841
02/09/03 15:09ID:???>ob_gzhandler にはメモリリークの問題があると以前に知り
知らなかった。でも、メモリリークが報告されているのは Ver4.0.4pl1なので
(http://www.geocrawler.com/archives/3/5/2001/1/0/5063854/)
もう解決されているんじゃないだろうか(推測)。
http://www.php.net/ChangeLog-4.php では、4.2.0で、ob_startに第3パラメータが
追加されているのが該当するかもしれない(これも推測)。
いずれにしても、解決したら詳細きぼ〜
0845814
02/09/04 10:17ID:khCnGqdv"GLOBALS[file1] = "などの文字列はでてました。
そして他のサーバからのうちのサーバのページへPOSTすると表示されるんですが
自分のサーバからPOSTすると何もうけとらない状態でした。
しかし、次の日またやってみたら何故かいけました・・・。
0846nobodyさん
02/09/04 11:00ID:LeJnVSk1フォーム入力の料金表示で直接入力の\を使うと、
hidden fieldで次のページにパスしたときに、
\\と表示されてしまいます。
$priceA = "\\" . $priceB といったように関数を
割り当てているのですが。
多分、バックスラッシュとの関係だと思うのですが。
分かる方いますか?
0848nobodyさん
02/09/04 13:15ID:qzuYRAZQ表示されまくなりました。
PHPのバージョンが上がって仕様が変わったのでしょうか?
0849nobodyさん
02/09/04 13:21ID:???ネタですか?
0851nobodyさん
02/09/05 17:06ID:NDL2LKCGecho "<tag>";
echo "</tag>";
?>
のようにして、ブラウザにタグを表示させたいのですが
表示できません。ソースを見ると「<tag></tag>」となって
いるだけです。タグをそのまま表示させるためにはどうすりゃ
いいのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています