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
Lepaskan: 2024-11-01 14:43:02
asal
309 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan