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).

Замечание: Если возникают проблемы с распознаванием PHP концов строк при чтении или создании файлов на Macintosh-совместимом компьютере, включение опции auto_detect_line_endings может помочь решить проблему.

Ошибки

Вызывает ошибку уровня E_WARNING, если файл не существует.

Примеры

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

Примечания

Внимание

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

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

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