feof

(PHP 4, PHP 5, PHP 7, PHP 8)

feofPrüft, ob ein Dateizeiger am Ende der Datei steht

Beschreibung

feof(resource $stream): bool

Prüft, ob ein Dateizeiger am Ende der Datei steht.

Parameter-Liste

stream

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.

Rückgabewerte

Gibt true zurück, wenn der Dateizeiger an EOF (Dateiende) steht oder ein Fehler auftritt (inklusive Socket-Zeitüberschreitung); ansonsten wird false zurückgegeben.

Anmerkungen

Warnung

Wenn eine mit fsockopen() geöffnete Verbindung nicht durch den Server geschlossen wurde, bleibt feof() hängen. Um dies zu umgehen, siehe folgendes Beispiel:

Beispiel #1 Handhabung von Zeitüberschreitungen mit feof()

<?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)
{
/* Verarbeiten */
}
?>

Warnung

Wenn der übergebene Dateizeiger nicht gültig ist, kann es zu einer Endlosschleife kommen, weil feof() nicht true zurückgibt.

Beispiel #2 feof()-Beispiel mit einem ungültigen Dateizeiger

<?php
// Wenn $file nicht gelesen werden kann oder nicht existiert, gibt fopen FALSE zurück
$file = @fopen("no_such_file", "r");

// Ein FALSE von fopen löst eine Warnung aus und führt hier zu einer Endlosschleife
while (!feof($file)) {
}

fclose($file);
?>