Heim  >  Artikel  >  Backend-Entwicklung  >  PHP zählt effizient die Anzahl der Zeilen in großen Dateien

PHP zählt effizient die Anzahl der Zeilen in großen Dateien

*文
*文Original
2017-12-26 17:11:212088Durchsuche

Wie kann man die Anzahl der Zeilen in großen Dateien in PHP effizient zählen? In diesem Artikel werden hauptsächlich Beispiele für das ultraschnelle und effiziente Zählen von Zeilen in großen Dateien in PHP vorgestellt. Ich hoffe, es hilft allen.

Verwenden Sie PHP, um die Anzahl der Dateizeilen zu ermitteln. Die im Internet angegebene Antwort lautet normalerweise, dass Sie „file“ verwenden, um alles auf einmal zu lesen, was für große Dateien nicht geeignet ist. Normalerweise wird bei großen Dateien eine While-Schleife verwendet, um Zeile für Zeile zu zählen.

Der schnellste Weg besteht darin, mehrere Zeilen zu zählen, jedes Mal N Bytes zu lesen und dann die Anzahl der Zeilen zu zählen. Das ist schneller, als die Effizienz von Zeile zu Zeile viel höher ist.

Testsituation, Dateigröße 3,14 GB

Erstes Mal: ​​Zeile: 13214810, Zeit:56,2779 s;
Zweites Mal: ​​Zeile: 13214810, Zeit:49,6678 s;

/*
 * 高效率计算文件行数
 * @author axiang
*/
function count_line($file){
  $fp=fopen($file, "r");
  $i=0;
  while(!feof($fp)) {
    //每次读取2M
    if($data=fread($fp,1024*1024*2)){
      //计算读取到的行数
      $num=substr_count($data,"\n");
      $i+=$num;
    }
  }
  fclose($fp);
  return $i;
}

Verwandte Empfehlungen:

PHP-Datei lesen fread, fgets, fgetc, Beispielcode für Verwenden von file_get_contents und der Dateifunktion

PHP-Datei selbst-Vorgang

PHP-Datei in Array einlesen

Das obige ist der detaillierte Inhalt vonPHP zählt effizient die Anzahl der Zeilen in großen Dateien. 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