[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 メーリングリストの案内