(PHP 4, PHP 5, PHP 7, PHP 8)
file — Читает содержимое файла и помещает его в массив
$filename
, int $flags
= 0, ?resource $context
= null
): array|falseЧитает содержимое файла и помещает его в массив.
Замечание:
Можно также использовать функцию file_get_contents() для получения файла в виде строки.
filename
Путь к файлу.
Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых обёрток URL, их возможности, замечания по использованию и список предопределённых констант в разделе Поддерживаемые протоколы и обёртки.
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
).
Замечание: Если у вас возникают проблемы с распознаванием 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://
и не выводит предупреждение. Если вы используете fsockopen() для создания ssl://
сокета, вы сами отвечаете за определение и подавление этого предупреждения.