[PHP-users 19988]popenの動作
Youichi Matsumoto
you1da @ tcat.ne.jp
2004年 1月 25日 (日) 02:39:58 JST
はじめまして田中と申します。
HTTPでアクセスするphpファイル中で
巨大なファイル(80メガくらい)をpopenで開き
ファイルの末尾からある文字列を
検索する様な処理を行っているのですが
Apacheのerror_logに
『書き込みエラー: パイプが切断されました』
とのログが吐かれます。
プログラムは下記のようなものです。
$fp = popen("tac /tmp/hogehoge.log", "r");
while (!feof($fp)) {
$line = fgets($fp, 1000);
//ある文字列にマッチしたらbreak
if (mb_ereg("HOGEHOGE", $line, $match)) {
break;
}
}
pclose($fp);
何か処理の仕方に誤りがあるのでしょうか?
それとも何かphp.iniの設定のせい?
とにかくこのログが吐かれないようにしたいのです・・・。
また、処理途中にブラウザの停止ボタンを押すと
サーバーのプロセスに
tac /tmp/hogehoge.log
が残ったままになります。
これを停止ボタンの押下と同時にプロセスが落ちるように
したいのですが方法はあるのでしょうか?
どなたかご教授いただけると助かります。
PHP-users メーリングリストの案内