Wie kann man Zeilen in großen Textdateien (200 MB) effizient zählen?

Susan Sarandon
Freigeben: 2024-11-02 07:38:02
Original
322 Leute haben es durchsucht

How to Efficiently Count Lines in Large Text Files (200 MB )?

Zeilen in großen Textdateien (200 MB) ohne Speicherfehler zählen

Das Zählen von Zeilen in großen Textdateien mit file($path) kann zu Speicherauslastungsfehlern führen Die gesamte Datei wird in den Speicher geladen. Um dieses Problem anzugehen, ist ein effizienterer und speichersparenderer Ansatz erforderlich.

Eine Methode zum effizienten Zählen von Zeilen ist die Verwendung der Funktion fgets(). Indem Sie Zeilen einzeln lesen und verarbeiten, können Sie vermeiden, die gesamte Datei in den Speicher zu laden:

<code class="php">$file = "largefile.txt";
$linecount = 0;
$handle = fopen($file, "r");

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

fclose($handle);

echo $linecount;</code>
Nach dem Login kopieren

Dieser Code öffnet die Datei zum Lesen, liest jeweils eine einzelne Zeile mit fgets() und erhöht sie die Zeilenanzahl und wird beendet, wenn das Ende der Datei erreicht ist.

Ein weiterer Ansatz, der besonders nützlich für Dateien mit möglicherweise sehr langen Zeilen ist, ist das Zählen von Zeilenendezeichen:

<code class="php">$file = "largefile.txt";
$linecount = 0;
$handle = fopen($file, "r");

while (!feof($handle)) {
  $line = fgets($handle, 4096);
  $linecount += substr_count($line, PHP_EOL);
}

fclose($handle);

echo $linecount;</code>
Nach dem Login kopieren

Hier wird substr_count() verwendet, um die Anzahl der Zeilenumbrüche in jedem gelesenen Datenblock zu zählen.

Beide Methoden verbrauchen weniger Speicher, da sie Zeilen inkrementell verarbeiten, anstatt die gesamte Datei in den Speicher zu laden.

Das obige ist der detaillierte Inhalt vonWie kann man Zeilen in großen Textdateien (200 MB) effizient zählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!