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);
?>