2016-04-17 5 views
-1

Es ist eine ziemlich große Datei, es wird am Ende ein Gigabyte sein.Wie echo ich die ersten 500 Zeilen einer Datei mit PHP?

Ich möchte nur die ersten 500 Zeilen zeigen. Die Datei ist vorformatiert, da es sich um ein Protokoll handelt.

+1

Initialise zählen; Öffne die Datei; Überstreichen Sie eine Linie zur Zeit, erhöhen Sie die Zählung; Beenden, wenn die Anzahl 500 erreicht. –

+1

Es gibt viele Möglichkeiten, dies zu tun. Hast du einen der Threads darauf angesehen? oder irgendwas probiert? – chris85

Antwort

0

Die Zuweisung der gesamten Datei zu einem Array kann den Speicher der Maschine erschöpfen.

Es ist besser, die Datei Zeile-für-Zeile zu lesen, je nach Bedarf:

$handle = fopen("data.txt", "r"); 
if ($handle) { 
    for ($i = 0; $i < 500; $i++) { 
     if (($line = fgets($handle)) !== false) { 
      // Do whatever processing is needed 
     } 
    } 
} 
+0

was meinst du mit "Tue was auch immer Verarbeitung benötigt wird"? – TheSqrtMinus1

+0

Ich meine die Zeile anzeigen, transformieren usw. Grundsätzlich tun Sie, was Sie wollen. Dies ist eine sehr speichereffiziente Implementierung. Es kann Dateien beliebiger Größe verarbeiten, auch solche, die kleiner als 500 Zeilen sind. – yk11

+0

Entschuldigung, wenn ich noobish höre, aber wie kann ich es einfach nur echo? – TheSqrtMinus1

0

Sie können tun wie;

+2

Könnte leicht verfügbaren Speicher blasen, wenn es eine "ziemlich große Datei" ist –

Verwandte Themen