(PHP 4, PHP 5)
feof — Comprueba si el puntero a un archivo está al final del archivo
$handle
)Comprueba si el puntero a un archivo está al final del archivo.
handle
El fichero al que se apunta debe ser válido, y debe apuntar a un fichero abierto por fopen() o fsockopen() (y que todavía no esté cerrado por fclose()).
Devuelve TRUE
si el puntero al archivo está en EOF o produce un error
(incluido el tiempo de espera del socket); de otro modo devuelve FALSE
.
Si una conexión abierta por fsockopen() no se cerró por el servidor, feof() se colgará. Para solucionar esto, vea el ejemplo siguiente:
Ejemplo #1 Manejar tiempos de espera con feof()
<?php
function feof_segura($fp, &$inicio = NULL) {
$inicio = microtime(true);
return feof($fp);
}
/* Asumir que $fp está previamente abierto por fsockopen() */
$inicio = NULL;
$timeout = ini_get('default_socket_timeout');
while(!feof_segura($fp, $inicio) && (microtime(true) - $inicio) < $timeout)
{
/* Gestor */
}
?>
Si el puntero al archivo pasado a la función no es válido, se podría dar un bucle infinito,
ya que feof() falla para devolver TRUE
.
Ejemplo #2 Ejemplo de feof() con un puntero a un archivo no válido
<?php
// si el archivo no se puede leer o no existe, la función fopen devuelve FALSE
$archivo = @fopen("ningún_archivo", "r");
// FALSE desde fopen emitirá una advertencia y resultará en un bucle infinito aquí
while (!feof($archivo)) {
}
fclose($archivo);
?>