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

# feof

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

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

### Описание

function feof(resource `$stream`): bool

Функция проверяет, наступило ли событие EOF в указателе на файл.

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

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

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

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

### Примечания

Внимание

Функция feof() зависнет, если сервер не закрыл подключение, открытое функцией fsockopen(). Следующий пример показывает, как этого избежать:

Пример #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);

    ?>

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open