[PHP-users 7379] メモリ使用を最小限に抑えるファイル読み込み

php-users@php.gr.jp php-users@php.gr.jp
Fri, 10 May 2002 19:31:25 +0900


はじめまして、Perlからの乗り移りユーザーTAKAです。
宜しくお願いします。(^^)

過去にメモリやファイル読み込みについての記事がありますが、
色々と役立っております。
fgetsで指定したバイトが大きければ大きいほど、
無駄にバイト確保されてしまうということですが、

$fp = fopen("hoge.txt", 'r');
while ( !feof($fp) ) {
  echo fgets($fp, 9182)."<この行はここで終わり>";
}
fclose($fp);

上のように、1行ごとの処理をしたい場合は、
行ごとのバイト数にばらつきがあるとかなり無駄にメモリを使ってしまいます。
そこで、ereg関数を使って\nを探し出し、そこまでで読み込みを終わらせ、
次の読み込み処理へ移る…というようなことはできないでしょうか?
最も効率の良い、1行ごとに処理するファイルの読み込み法を探しています。

どうぞ、アドバイスを宜しくお願いします。


○━━━━━━━━━━━━━━━○
      SAITO TAKA
○━━━━━━━━━━━━━━━○