(PHP 4, PHP 5)
feof — Sprawdza czy wskaźnik pliku jest na końcu pliku (EOF)
$uchwyt
)Sprawdza czy wskaźnik pliku jest na końcu pliku (EOF).
uchwyt
Wskaźnik na plik musi być poprawny i musi wskazywać na plik pomyślnie otwarty przez funkcję fopen() lub fsockopen() (a jednocześnie nie zamknięty jeszcze przez fclose()).
Zwraca TRUE
jeśli wskaźnik pliku jest na EOF lub gdy zdarzy się błąd
(także timeout połączenia socket'owego); w przeciwnym wypadku zwraca FALSE
.
Jeśli połączenie otworzone za pomocą fsockopen() nie zostanie zamknięte przez serwer, feof() zawiesi się. Aby to obejść zobacz poniższy przykład:
Przykład #1 Obsługa limitu czasu w feof()
<?php
function safe_feof($fp, &$start = NULL) {
$start = microtime(true);
return feof($fp);
}
/* Zakładając, że $fp jest wcześniej otworzone przez fsockopen() */
$start = NULL;
$timeout = ini_get('default_socket_timeout');
while(!safe_feof($fp, $start) && (microtime(true) - $start) < $timeout)
{
/* Uchwyt */
}
?>
Jeśli podano nieprawidłowy wskaźnik pliku to możesz uzyskać nieskończoną pętle,
ponieważ feof() w przypadku błędu zwraca TRUE
..
Przykład #2 feof() przykład z nieprawidłowym wskaźnikiem pliku
<?php
// jeśli plik nie może zostać odczytany lub nie istnieje funkcja fopen zwróci FALSE
$file = @fopen("nie_isniejacy_plik", "r");
// FALSE z fopen spowoduje ostrzeżenie oraz wystąpi tu nieskończona pętla
while (!feof($file)) {
}
fclose($file);
?>