[PHP-users 34879] ファイルの逆読みの方法に関して

岸本 弥生 yayoi @ back-in-time.jp
2009年 12月 16日 (水) 01:04:06 JST


はじめまして、岸本と申します。宜しくお願いします。
現在下記の現象で困っています、助言いたたければ幸いです。


開発を担当しているシステムでアプリケーションログを出力しています。
そのログファイルを表示するWEBアプリを作成しているのですが、ログファイルの
容量が大き過ぎてphpがメモリオーバで終了してしまいます。

エラー内容:
Allowed memory size of 134217728 bytes exhausted

そこで、最新から遡って1000行まで表示する様に変更したいのですが、どうしても
ファイル全体を一旦読み込まないとならずにエラーを回避できません。
できればファイルを逆読みして1000行目で読み込みを中断して表示させたいのですが
苦心しています。

ちなみに下記が現行のコードです。(一行目のfile関数でアウトです)

  $_log = file("/hogehoge/Apllog.log");
  $log = array_splice($_log, 1, count($_log)-1000);

ログファイルはlogrotateで肥大化しない様に工夫してあります。

極力memory_limitの値は変更せずに対応したいのですが、、
ヒントでも構いませんので宜しくお願いします。

以上


PHP-users メーリングリストの案内