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.
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.
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
}
}
}
was meinst du mit "Tue was auch immer Verarbeitung benötigt wird"? – TheSqrtMinus1
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
Entschuldigung, wenn ich noobish höre, aber wie kann ich es einfach nur echo? – TheSqrtMinus1
Sie können tun wie;
Könnte leicht verfügbaren Speicher blasen, wenn es eine "ziemlich große Datei" ist –
Initialise zählen; Öffne die Datei; Überstreichen Sie eine Linie zur Zeit, erhöhen Sie die Zählung; Beenden, wenn die Anzahl 500 erreicht. –
Es gibt viele Möglichkeiten, dies zu tun. Hast du einen der Threads darauf angesehen? oder irgendwas probiert? – chris85