首頁 >後端開發 >php教程 >如何有效計算千兆位元組文字資料的行數?

如何有效計算千兆位元組文字資料的行數?

Linda Hamilton
Linda Hamilton原創
2024-11-01 14:43:02307瀏覽

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>

此方法一次將一行載入到記憶體中,避免了將整個檔案儲存在記憶體中的需要。

如果您的文件可能包含大量內容,長行,您可以使用此替代方法來計算換行符:

<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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn