(PHP 4, PHP 5, PHP 7, PHP 8)
file — Читает содержимое файла и помещает его в массив
Функция читает содержимое файла и помещает его в массив.
Замечание:
Файл в виде строки также возвращает функция file_get_contents().
filename
Путь к файлу.
В эту функцию в качестве имени файла можно передавать URL-адреса, если была включена директива fopen wrappers. Подробнее о том, как указать имя файла, рассказано в описании функции fopen(). В разделе «Протоколы и обёртки» также даны ссылки на информацию о способностях поддерживаемых обёрток, замечания по работе с ними и список предопределённых переменных, которые они дают.
flags
Необязательный параметр flags
принимает
константу из следующего списка:
FILE_USE_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://
.