質問: @fopen($filedate,"r"); while(!feof($d4)){ $d3 .= fgets($d4, 3200); } fclose($d4); 要するに$d3にファイルソースをすべて読み込ませたいです。実際にはこれをファイル数分ループさせます。 試してみたところfopenは約6000、fileは約26000読み込めました。 fopen命令はこういった命令には向かないのでしょうか?それとも書き方や読み込むファイルが悪いのでしょうか... fopenはfileより低メモリでできると書いてあったのですが、この結果からだと間違っているようなのですがどうなのでしょう?
回答: 下記のコメントでいただいた情報を含めて回答します。 > > fopenは約19000ファイルで処理が止まり$d5の結果が表示されず、fileは約26000ファイルで$d5の結果も表示できました > > > これは、fopen関数の問題というより、whileループを回しているオーバーヘッドがあるために、file関数の場合より少ないファイル数でタイムアウトしてしまったのだと考えられます。 確証はありませんが、file関数を使った場合よりfile_get_contents関数を使った方が、少しだけ読み込み可能なファイル件数が増えるのではないでしょうか。