fgets

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 :

Beispiel 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)

 
;





Anmerkung : 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 .

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

Anmerkung : 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( ) .