Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Anda Boleh Mengira Baris dalam Gigabait Data Teks dengan Cekap?

Bagaimanakah Anda Boleh Mengira Baris dalam Gigabait Data Teks dengan Cekap?

Linda Hamilton
Linda Hamiltonasal
2024-11-01 14:43:02307semak imbas

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

Mengoptimumkan Pengiraan Baris dalam Fail Teks Besar (Berbilang GB)

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn