fopen
で非常に適度なサイズのファイルを読み込もうとすると失敗しますPHP
。 A 6 meg file
周りの小さなファイルは問題ありませんが、チョークします100k
。PHP
20 GB を超えるファイルを読み取るために、フラグを使用して再コンパイルする必要がある場合があることを読んだことがあり-D_FILE_OFFSET_BITS=64
ますが、6 MB のファイルに問題はありませんか? 最終的には、約 100 MB のファイルを読み込む必要があります。小さいファイルでできるように、それらを開いて fgets を使用して 1 行ずつ読み込むことができると便利です。
で非常に大きなファイルの読み取りと操作を行うためのトリック/ソリューションは何PHP
ですか?
更新: 6 MB のファイルで失敗する単純なコードブロックの例を次に示します。PHP はエラーをスローしていないようで、false を返すだけです。ひょっとして私は非常にばかげたことをしているのだろうか?
$rawfile = "mediumfile.csv";
if($file = fopen($rawfile, "r")){
fclose($file);
} else {
echo "fail!";
}
別の更新: ご協力いただきありがとうございます。それは信じられないほどばかげたものであることが判明しました - パーミッションの問題です。大きなファイルには許可されていないのに、私の小さなファイルには不可解にも読み取り許可がありました。どっ!