[PHP-users 6681] Re: ファイルの読み込み

Arai Junya php-users@php.gr.jp
Thu, 4 Apr 2002 20:27:05 +0900 (JST)


こんばんは。じゅんやです。

>ファイルサイズが明確ではないため(2)のfgets関数を使う方 が
>メモリの使用量が少なくてすむ気がするのでこちらを使おう
と思>っています。
> 
> (1)file("/tmp/hoge.txt");
> (2)fgets($fp, 100);

ファイルサイズが明確でない場合は、1のfile()関数のほうが
よいのではないでしょうか?
file()関数だと各行が配列として帰ってくるので処理が楽だと
思います。

メモリの使用量が少なくてすむ気が・・・
ということで、fgetsをお使いになるとのことですが、
こちらはファイルフォーマットが決まっている場合の
方が効果を発揮すると考えます。
行の最大サイズが決まっていないからといって、
でたらめに大きな数字を与えるとかえってメモリを消費する
ような気がしますが・・・?


 私の場合は、CSV形式など区切りのあるファイルは、
file()関数を使用しています。処理が楽なので。

逆にfgetsを使用するときは、各行に区切り文字がない
固定長ファイルなどの時に使用しています。

しかしながら、どちらの場合もファイルフォーマットは
決まっていてどの位置に何のデータがあるかわかっています。
ファイルを処理するスクリプトを記述する場合、
”最大サイズはわからない”としないで確定してから
進めたほうがよいと思います。

参考になれば幸いです。^^


__________________________________________________
Do You Yahoo!?
Yahoo! BB is Broadband by Yahoo!
http://bb.yahoo.co.jp/