(PHP 4, PHP 5)
feof — Teste la fin du fichier
$handle
)Teste la fin du fichier.
handle
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);
?>