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!