feof

(PHP 4, PHP 5, PHP 7, PHP 8)

feofTesta pelo fim-de-arquivo em um ponteiro de arquivo

Descrição

feof(resource $stream): bool

Testa pelo fim-do-arquivo em um ponteiro de arquivo.

Parâmetros

stream

O ponteiro de arquivo deve ser válido e deve apontar para um arquivo aberto com sucesso por fopen() ou fsockopen() (e ainda não fechado por fclose()).

Valor Retornado

Retorna true se o ponteiro estiver no fim do arquivo ou um erro ocorrer (incluindo um limite de tempo de socket); caso contrário retorna false.

Notas

Warning

Se uma conexão aberta por fsockopen() não foi fechada pelo servidor, feof() irá travar. Para contornar isto, veja o exemplo abaixo:

Example #1 Handling timeouts with feof()

<?php
function safe_feof($fp, &$start = NULL) {
 $start = microtime(true);

 return feof($fp);
}

/* Assumindo que $fp foi previamente aberto por fsockopen() */

$start = NULL;
$timeout = ini_get('default_socket_timeout');

while(!safe_feof($fp, $start) && (microtime(true) - $start) < $timeout)
{
 /* Handle */
}
?>
Warning

Se o ponteiro de arquivo passado não for válido pode-se chegar a um loop infinito, porque feof() falha em retornar true.

Example #2 Exemplo de feof() com um ponteiro de arquivo inválido

<?php
// se o arquivo não puder ser lido ou não existir a função fopen retorna FALSE
$file = @fopen("no_such_file", "r");

// FALSE a partir do fopen irá emitir um aviso (warning) e resultar em um loop infinito aqui
while (!feof($file)) {
}

fclose($file);
?>