Heim  >  Artikel  >  Backend-Entwicklung  >  Wie können Sie Zeilen in Gigabytes an Textdaten effizient zählen?

Wie können Sie Zeilen in Gigabytes an Textdaten effizient zählen?

Linda Hamilton
Linda HamiltonOriginal
2024-11-01 14:43:02211Durchsuche

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

Optimieren der Zeilenzählung in großen Textdateien (mehrere GB)

Bei Textdateien mit mehr als 200 MB kann es vorkommen, dass Zeilen mit count(file($path)) gezählt werden Speicherbeschränkungen. Hier ist eine effizientere Lösung:

<code class="php">$file = "largefile.txt";
$linecount = 0;

$handle = fopen($file, "r");

while (!feof($handle)) {
  fgets($handle);
  $linecount++;
}

fclose($handle);

echo $linecount;</code>

Dieser Ansatz lädt jeweils eine einzelne Zeile in den Speicher, sodass nicht die gesamte Datei im Speicher gespeichert werden muss.

Wenn Ihre Dateien möglicherweise extrem viel enthalten Bei langen Zeilen können Sie stattdessen diese alternative Methode zum Zählen von Zeilenumbrüchen verwenden:

<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>

Indem Sie die Datei aufteilen und Zeilenumbrüche zählen, können Sie Speicherprobleme selbst bei außergewöhnlich langen Zeilen verringern.

Das obige ist der detaillierte Inhalt vonWie können Sie Zeilen in Gigabytes an Textdaten effizient zählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn