(PHP 4, PHP 5, PHP 7)
feof — Prüft, ob ein Dateizeiger am Ende der Datei steht
$handle
)Prüft, ob ein Dateizeiger am Ende der Datei steht.
handle
Der Zeiger auf eine Datei muss gültig sein und auf eine Datei verweisen, die vorher erfolgreich mit fopen() oder fsockopen() geöffnet (und nicht bereits von fclose() geschlossen) wurde.
Gibt TRUE
zurück, wenn der Dateizeiger an EOF (Dateiende) steht oder ein
Fehler auftritt (inklusive Socket Zeitüberschreitung); ansonsten wird
FALSE
zurückgegeben.
Wenn eine mit fsockopen() geöffnete Verbindung nicht durch den Server geschlossen wurde, wird feof() hängen. Um dies zu umgehen, beachten sie folgendes Beispiel:
Beispiel #1 Zeitüberschreitungen mit feof() abhandeln
<?php
function safe_feof($fp, &$start = NULL) {
$start = microtime(true);
return feof($fp);
}
/* Annahme: $fp wurde zuvor mit fsockopen() geöffnet */
$start = NULL;
$timeout = ini_get('default_socket_timeout');
while(!safe_feof($fp, $start) && (microtime(true) - $start) < $timeout)
{
/* Abhandeln */
}
?>
Wenn der übergebene Dateizeiger nicht gültig ist, können sie eine
Endlosschleife erhalten, denn feof() gibt nicht TRUE
zurück.
Beispiel #2 feof() Beispiel mit einem ungültigen Dateizeiger
<?php
// Wenn Datei nicht gelsen werden kann oder nicht existiert fopen gibt FALSE zurück
$file = @fopen("no_such_file", "r");
// FALSE von fopen wird eine Warnung auslösen und hier in einer
// Endlosschleife resultieren
while (!feof($file)) {
}
fclose($file);
?>