(PHP 4, PHP 5)
feof — Teste la fin du fichier
Teste la fin du fichier.
Le pointeur de fichier doit être valide et pointer sur un fichier ouvert avec succès par fopen() ou fsockopen() (et pas encore fermé par fclose()).
Retourne TRUE si le pointeur handle est à la fin du fichier ou si une erreur survient, sinon, retourne FALSE.
Si une connexion ouverte avec fsockopen() n'est pas fermée par le serveur, feof() se bloquera. Pour contourner ce comportement, reportez-vous à l'exemple ci-dessous :
Exemple #1 Gestion des délais d'attente dépassés feof()
<?php
function safe_feof($fp, &start = NULL) {
$start = microtime(true);
return feof($fp);
}
/* Assumons que $fp a été précédemment ouvert par fsockopen() */
$start = NULL;
$timeout = ini_get('default_socket_timeout');
while(!safe_feof($fp, $start) && (microtime(true) - $start) < $timeout)
{
/* Gestion */
}
?>
Si le pointeur de fichier passé n'est pas valide, vous obtiendrez une boucle infinie car feof() échouera à retourner TRUE.
Exemple #2 Exemple avec feof() et un pointeur de fichier invalide
<?php
// Si le fichier ne peut être lu ou n'existe pas, la fonction fopen retourne FALSE
$file = @fopen("no_such_file", "r");
// FALSE issu de fopen emmetra une alerte et fera quel'on aura une boucle infinie ici
while (!feof($file)) {
}
fclose($file);
?>