PHP で非常に大きなファイルを読み取る
PHP の fopen を使用して中程度のサイズ (6 MB) のファイルを読み取るのは困難ですが、デフォルト設定で十分です。 。特殊な解決策を検討する前に、あまり明らかではない潜在的なエラーを調査することが重要です。
タイムアウトとメモリ制限を考慮する:
スクリプトのタイムアウト構成を検査します。デフォルトの期間 (通常は約 30 秒) を超えると、ファイル I/O 中に中断が発生する可能性があります。さらに、スクリプトのメモリ使用量を確認して、メモリ制約を示す警告が表示されないようにしてください。大きなファイルを配列に読み取るには、メモリ割り当てを増やす必要がある場合があります。
fgets で最適化します:
前の診断で手がかりが得られない場合は、ファイルを 1 行ずつ読み取る可能性を調べます。 -fgets 関数を使用した行。このアプローチでは、データを段階的に処理するため、メモリ使用量が小さくなります。
$handle = fopen("/tmp/uploadfile.txt", "r") or die("Couldn't get handle"); if ($handle) { while (!feof($handle)) { $buffer = fgets($handle, 4096); // Process buffer here.. } fclose($handle); }
その他のエラーのトラブルシューティング:
エラー メッセージ「PHP はエラーをスローしていないようです」エラー、false が返されるだけです」は、さまざまな問題を示している可能性があります:
以上がPHP で非常に大きなファイルを効率的に読み取るにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。