(PHP 4, PHP 5, PHP 7, PHP 8)
feof — Prueba el final del archivo
streamEl puntero de archivo debe ser válido y apuntar a un archivo abierto con éxito por fopen() o fsockopen() (y no cerrado aún por fclose()).
Retorna true si el puntero
handle está al final del archivo o si
ocurre un error, de lo contrario, retorna false.
Si una conexión abierta con fsockopen() no es cerrada por el servidor, feof() se bloqueará. Para evitar este comportamiento, consulte el ejemplo a continuación:
Ejemplo #1 Gestión de tiempos de espera excedidos feof()
<?php
function safe_feof($fp, &$start = NULL) {
$start = microtime(true);
return feof($fp);
}
/* Supongamos que $fp fue previamente abierto por fsockopen() */
$start = NULL;
$timeout = ini_get('default_socket_timeout');
while(!safe_feof($fp, $start) && (microtime(true) - $start) < $timeout)
{
/* Gestión */
}
?>
Si el puntero de archivo pasado no es válido, se obtendrá
un bucle infinito ya que feof() fallará al retornar true.
Ejemplo #2 Ejemplo con feof() y un puntero de archivo inválido
<?php
// Si el archivo no puede ser leído o no existe, la función fopen retorna FALSE
$file = @fopen("no_such_file", "r");
// FALSE proveniente de fopen emitirá una advertencia y causará un bucle infinito aquí
while (!feof($file)) {
}
fclose($file);
?>