feof

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

feofПроверяет, достигнут ли конец файла

Описание

feof(resource $stream): bool

Проверяет, достигнут ли конец файла.

Список параметров

stream

Указатель на файл должен быть корректным и указывать на файл, успешно открытый функциями fopen() или fsockopen() (и всё ещё не закрытый функцией fclose()).

Возвращаемые значения

Возвращает true, если указатель файла указывает на EOF или произошла ошибка (в том числе превышено время ожидания сокета), иначе возвращает false.

Примечания

Внимание

Если подключение, открытое при помощи fsockopen(), не было закрыто сервером, feof() повиснет. Для варианта обхода этого поведения смотрите следующий пример:

Пример #1 Обработка времени ожидания с функцией feof()

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

return
feof($fp);
}

/* Предположим, что $fp был ранее открыт с помощью fsockopen() */

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

while(!
safe_feof($fp, $start) && (microtime(true) - $start) < $timeout)
{
/* Обработка */
}
?>

Внимание

Если передан неверный файловый указатель, то вы можете получить бесконечный цикл, так как feof() не сможет вернуть true.

Пример #2 Пример feof() с неверным файловым указателем

<?php
// если файл не может быть прочтён или не существует, fopen вернёт FALSE
$file = @fopen("no_such_file", "r");

// FALSE от fopen вызовет предупреждение и следующий цикл станет бесконечным
while (!feof($file)) {
}

fclose($file);
?>