file_get_contents での PHP メモリ枯渇エラー
file_get_contents で大量のファイルを読み取ると、メモリ枯渇により PHP の致命的なエラーが発生する可能性があります。たとえば、40 MB のファイルを処理しようとすると、次のエラーが発生します。
<code class="php">PHP Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 41390283 bytes)</code>
代替ソリューション
file_get_contents の代わりに、次の代替案を検討してください:
チャンク読み取り
file_get_contents_chunked 関数を使用すると、ファイルを管理可能なチャンクで読み取ることができ、メモリ枯渇の問題を回避できます。
<code class="php">function file_get_contents_chunked($file, $chunk_size, $callback) { $handle = fopen($file, "r"); $i = 0; while (!feof($handle)) { call_user_func_array($callback, array(fread($handle, $chunk_size), &$handle, $i)); $i++; } fclose($handle); } // Example usage: file_get_contents_chunked("my/large/file", 4096, function($chunk, &$handle, $iteration) {});</code>
ネイティブ文字列関数
正規表現を使用する代わりに、strpos、substr、trim、explode などのネイティブ文字列関数を採用することを検討してください。これらの関数はより効率的で、潜在的なメモリの問題を回避します。
正規表現の最適化
大きなファイルを扱う場合、不必要なメモリ消費を最小限に抑えるために正規表現パターンを最適化することが重要です。 。ファイル全体の一致を避け、代わりに小さい特定のパターンに焦点を当てます。
その他の考慮事項
以上がfile_get_contents 使用時の PHP メモリ枯渇エラーを解決するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。