200 MB を超えるテキスト ファイルの場合、count(file($path)) を使用した行カウントで問題が発生する可能性があります。メモリの制限。より効率的な解決策は次のとおりです。
<code class="php">$file = "largefile.txt"; $linecount = 0; $handle = fopen($file, "r"); while (!feof($handle)) { fgets($handle); $linecount++; } fclose($handle); echo $linecount;</code>
この方法では、一度に 1 行ずつメモリにロードされるため、ファイル全体をメモリに保存する必要がなくなります。
ファイルに極端な内容が含まれている場合は、行が長い場合は、次の代替方法を使用して改行をカウントできます。
<code class="php">$linecount = 0; $handle = fopen($file, "r"); while (!feof($handle)) { $line = fgets($handle, 4096); $linecount += substr_count($line, PHP_EOL); } fclose($handle);</code>
ファイルを分割して改行をカウントすることで、非常に長い行でもメモリの問題を軽減できます。
以上がギガバイト単位のテキスト データの行数を効率的にカウントするにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。