Данная функция идентична функций readfile() с той разницей,
что file() возвращает содержимое прочитанного файла
в виде массива. Каждый элемент возвращенного массива содержит соответствующую
строку с символами конца строки. В случае ошибки, функция file()
возвращает FALSE.
Вы можете указать необязательный параметр use_include_path,
равный "1", если хотите, чтобы поиск файла также производился в каталогах, указанных
директивой include_path.
<?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"; }
// Второй пример. Получим содержание web-страницы в виде одной строки. // См.также описание функции file_get_contents(). $html = implode('', file ('http://www.example.com/')); ?>
Подсказка: Для этой функции вы можете использовать URL
в качестве имени файла, если была включена опция "fopen wrappers". Смотрите более
подробную информацию об определении имени файла в описании функции
fopen(), а также список поддерживаемых протоколов URL в
Прил. M.
Замечание:
Каждая строка в полученном массиве будет завершаться символами конца
строки, поэтому, если вам будет нужно избавиться от этих символов, вы
будете должны использовать функцию rtrim().
Замечание: Если у вас возникают проблемы
с распознаванием PHP окончания строк при чтении
файлов на Macintosh-совместимом компьютере или при чтении файлов, созданных
на Macintosh-совместимом компьютере, необходимо включить опцию
auto_detect_line_endings.
Замечание:
Начиная с PHP 4.3.0, вы можете использовать функцию file_get_contents()
для получения содержимого файла в виде строки.
Начиная с PHP 4.3.0, функция file() корректно
обрабатывает двоичные данные.
Замечание: Поддержка контекста была добавлена
в PHP 5.0.0.
Внимание
При использовании SSL,
Microsoft IIS нарушает протокол, закрывая соединение без отправки
индикатора close_notify. PHP сообщит об этом как о "SSL: Fatal Protocol Error"
в тот момент, когда вы достигнете конца данных. Чтобы обойти это, вы должны
установить error_reporting на
уровень, исключающий E_WARNING.
PHP версий 4.3.7 и старше умеет определять, что на стороне сервера находится
проблемный IIS и не выводит предупреждение.
Если вы используете fsockopen() для создания ssl:// сокета,
вы сами отвечаете за определение и подавление этого предупреждения.