feof
(PHP 4, PHP 5, PHP 7)
feof — Проверяет, достигнут ли конец файла
Описание
$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);
?>