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