Читает содержимое файла и помещает его в массив

# file

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

file — Читает содержимое файла и помещает его в массив

### Описание

function file(string `$filename`, int `$flags` = 0, ?resource `$context` = `null`): array|false

Функция читает содержимое файла и помещает его в массив.

> Замечание:

> Файл в виде строки также возвращает функция file_get_contents().

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

`filename`

  Путь к файлу.

  Подсказка

  Вместо названий файлов функция принимает URL-адреса, если включили директиву fopen wrappers. Подробнее об определении названия файла рассказывает описание функции fopen(). Раздел «Протоколы и обёртки» также даёт ссылки на информацию о поддерживаемых обёртках, содержит замечания по работе с обёртками и приводит список предопределённых переменных, которые они дают.

`flags`

  Необязательный параметр `flags` принимает константу из следующего списка:

  `FILE_USE_INCLUDE_PATH`
    Искать файл в списке путей директивы include_path.
  `FILE_IGNORE_NEW_LINES`
    Пропускать новую строку в конце каждого элемента массива.
  `FILE_SKIP_EMPTY_LINES`
    Пропускать пустые строки.
  `FILE_NO_DEFAULT_CONTEXT`
    Не использовать контекст по умолчанию.
`context`
  Ресурс (resource) контекста потока.

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

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

> Замечание:

> Каждая строка в массиве будет завершаться символами конца строки, если только не указали флаг `FILE_IGNORE_NEW_LINES`).

> Замечание: Включение опции auto_detect_line_endings во время выполнения иногда помогает исправить неправильное распознавание языком PHP концов строк при чтении файлов на Macintosh-совместимом компьютере или файлов, которые создали на Макинтоше.

### Ошибки

Начиная с PHP 8.3.0 функция выбрасывает ошибку ValueError, если параметр `flags` содержит недопустимое значение наподобие флага `FILE_APPEND`.

Функция выдаёт ошибку уровня `E_WARNING`, если файл не существует.

### Список изменений

Версия | Описание
--- | ---
8.3.0 | Функция выбрасывает ошибку ValueError при передаче в параметр `flags` недопустимого флага.

### Примеры

Пример #1 Пример использования функции file()

    <?php

    // Получаем содержимое файла в виде массива. Обращаемся
    // по HTTP-протоколу, чтобы получить HTML-код с удалённого сервера
    $lines = file('http://www.example.com/');

    // Обходим элементы массива и выводим содержимое как HTML-код с номерами строк
    foreach ($lines as $line_num => $line) {
        echo "Строка #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
    }

    // Передаём необязательный параметр flags
    $trimmed = file('somefile.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

    ?>

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

Внимание

При работе с сервером Microsoft IIS по SSL-протоколу разработчик сталкивается с тем, что IIS-сервер нарушает протокол путём закрытия соединения без отправки индикатора `close_notify`. PHP выдаст ошибку в виде сообщения «SSL: Fatal Protocol Error» при достижении конца данных. Чтобы избежать такого поведения, значение директивы error_reporting снижают до уровня, который не включает предупреждений уровня E_WARNING. PHP умеет обнаруживать ошибочное программное обеспечение IIS-сервера при открытии потока через обёртку `https://`, и подавляет предупреждение. За обнаружение и подавление предупреждения отвечает разработчик, который вызывает функцию fsockopen(), чтобы создать сокет `ssl://`.

### Смотрите также

- file_get_contents() - Считывает содержимое файла в строку
- readfile() - Выводит файл
- fopen() - Открывает файл или URL-адрес
- fsockopen() - Открывает соединение с сокетом интернет- или Unix-домена
- popen() - Открывает файловый указатель процесса
- include - include
- stream_context_create() - Создаёт контекст потока

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