Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Anda Boleh Mengira Baris dalam Gigabait Data Teks dengan Cekap?
Untuk fail teks melebihi 200 MB, mengira baris menggunakan count(file($path)) boleh dihadapi had ingatan. Berikut ialah penyelesaian yang lebih cekap:
<code class="php">$file = "largefile.txt"; $linecount = 0; $handle = fopen($file, "r"); while (!feof($handle)) { fgets($handle); $linecount++; } fclose($handle); echo $linecount;</code>
Pendekatan ini memuatkan satu baris pada satu masa ke dalam memori, mengelakkan keperluan untuk menyimpan keseluruhan fail dalam ingatan.
Jika fail anda mungkin mengandungi sangat garis panjang, anda boleh menggunakan kaedah alternatif ini untuk mengira pemisah baris sebaliknya:
<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>
Dengan memotong fail dan mengira pemisah baris, anda boleh mengurangkan masalah memori walaupun dengan baris yang sangat panjang.
Atas ialah kandungan terperinci Bagaimanakah Anda Boleh Mengira Baris dalam Gigabait Data Teks dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!