Forum und email

fgets

(PHP 4, PHP 5)

fgets — Liest eine Zeile von der Position des Dateizeigers

Beschreibung

string fgets ( resource $handle [, int $length ] )

Gibt eine Zeile bis zu length -1 Bytes Länge zurück, welche aus der Datei von der aktuellen Position des Dateizeigers handle aus ausgelesen wird. Die Zeile endet an einem Zeilenumbruch (welcher im Rückgabewert enthalten ist), EOF (Ende der Datei) oder bei length - 1 Bytes (je nachdem, was eher auftritt). Ist keine Länge angegeben, wird diese auf 1k bzw. 1024 Bytes gesetzt.

Wenn ein Fehler auftritt, wird FALSE zurückgegeben.

Häufig auftretende Fehler:

Wenn Sie an die C-Semantik von fgets() gewöhnt sind, sollten Sie auf die unterschiedliche Behandlung von EOF (genauer: wie EOF zurückgegeben wird) achten.

Der Datei-Zeiger fp muss gültig sein, d.h. die Datei, auf die gezeigt wird, muss zuvor mit fopen(), popen(), oder fsockopen() geöffnet worden sein.

Ein einfaches Beispiel:

Example#1 Eine Datei Zeile für Zeile einlesen

$handle = fopen ("/tmp/inputfile.txt", "r");
while (!feof($handle)) {
    $buffer = fgets($handle, 4096);
    echo $buffer;
}
fclose ($handle);

Hinweis: Der Parameter length wurde in PHP 4.2.0 optional. Ist er nicht angegeben, wird als Zeilenlänge 1024 angenommen. Seit PHP 4.3 wird bei einem fehlenden Parameter length so lange gelesen, bis das Ende der Zeile erreicht ist. Ist der Großteil der Zeilen in der Datei größer als 8 kB, ist es effizienter, wenn Sie die maximale Zeilenlänge spezifizieren.

Hinweis: Diese Funktion ist seit PHP 4.3 "binary safe", was aus frühere Versionen nicht zutrifft.

Hinweis: Wenn Sie Probleme damit haben, dass PHP Zeilenendezeichen nicht erkennt, entweder beim Lesen von Dateien auf einem Macintosh oder bei Dateien die auf einem Macintosh erstellt wurden, können Sie die Option auto_detect_line_endings aktivieren.

Siehe auch fread(), fopen(), popen(), fgetc(), fsockopen() und socket_set_timeout().