ホームページ  >  記事  >  バックエンド開発  >  ギガバイト単位のテキスト データの行数を効率的にカウントするにはどうすればよいでしょうか?

ギガバイト単位のテキスト データの行数を効率的にカウントするにはどうすればよいでしょうか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-01 14:43:02211ブラウズ

How Can You Efficiently Count Lines in Gigabytes of Text Data?

大きなテキスト ファイルの行カウントの最適化 (複数 GB)

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。