file

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

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

Описание

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() - Создаёт контекст потока