Beschreibung
string
fgets ( int fp [, int length])
Gibt eine Zeile bis zu length -1 Bytes
Länge zurück, welche aus der Datei von der aktuellen Position des
Dateizeigers fp 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 $fd = fopen ("/tmp/inputfile.txt", "r");
while (!feof($fd)) {
$buffer = fgets($fd, 4096);
echo $buffer;
}
fclose ($fd); |
|
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().