Php file get content

(PHP 4 >= 4.3.0, PHP 5)

file_get_contents — Получить содержимое файла в виде одной строки

Описание

Данная функция идентична функции file() с той только разницей, что содержимое файла возвращается в строке, начиная с указанного смещения offset и до maxlen байтов. В случае неудачи, file_get_contents() вернёт FALSE .

Использование функции file_get_contents() наиболее предпочтительно в случае необходимости получить содержимое файла целиком, поскольку для улучшения производительности функция использует алгоритм ‘memory mapping’ (если поддерживается операционной системой).

Замечание: Если вы открываете URI содержащий спецсимволы, такие как пробел, вам нужно закодировать URI при помощи urlencode() .

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Подсказка: Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция "fopen wrappers". Смотрите более подробную информацию об определении имени файла в описании функции fopen() , а также список поддерживаемых протоколов URL в Прил. M.

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

(PHP 4 >= 4.3.0, PHP 5)

file_get_contents — Получить содержимое файла в виде одной строки

Описание string file_get_contents ( string filename [, bool use_include_path [, resource context [, int offset [, int maxlen]]]] )

Использование функции file_get_contents() наиболее предпочтительно в случае необходимости получить содержимое файла целиком, поскольку для улучшения производительности функция использует алгоритм ‘memory mapping’ (если поддерживается операционной системой).

Замечание: Если вы открываете URI содержащий спецсимволы, такие как пробел, вам нужно закодировать URI при помощи urlencode() .

Список изменений

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Подсказка: Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция "fopen wrappers". Смотрите более подробную информацию об определении имени файла в описании функции fopen() , а также список поддерживаемых протоколов URL в Прил. M .

Внимание

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

Функция PHP file get ontents() используется для считывания файла в строку. Если применять ее для дистанционного считывания, не забудьте, что любой URL-адрес со специальными символами должен быть правильно закодирован при помощи urlencode() .

Пример использования file_get_contents() :

Возвращаемое значение

Функция возвращает считанные данные или вернет FALSE при ошибке.

Дополнительная информация

file_get_contents() должна стать приоритетной функцией для считывания содержимого файла в строку. Она задействует метод отображения файла в память .

Одно из основных отличий между функциями file() и file_get_contents() заключается в том, что последняя считывает содержимое в строку, начиная с указанного параметра offset , и до maxlen . А file() считывает содержимое в массив.

Версии и история изменений в PHP

Функция file get contents PHP работает с PHP 4 >= 4.3.0, PHP 5, PHP 7 .

Параметр offset появился в PHP 5.1 .
Параметр maxlen также появился в PHP 5.1 .

Связанные функции

Вам также следует знать о следующих PHP-функциях :

file() — считывает весь файл в массив;
fgets() — считывает строку из указанного файла;
fread() — производит бинарно-безопасное чтение файла;
readfile() — выводит файл;
file_put_contents() — записывает строку в файл;
stream_get_contents() — считывает остаток потока в строку;
stream_context_create() — создаёт контекст потока.

Параметры

Параметр filename функции PHP file get contents используется для указания имени файла. Это обязательный параметр.

Параметр use_include_path используется для указания, может ли константа FILE_USE_INCLUDE_PATH ( из файла php.ini ) использоваться для запуска поиска include path . Это необязательный параметр.

Параметр context используется для указания контекста, созданного функцией stream_context_create() . Если не нужен произвольный контекст, можно опустить этот параметр при помощи NULL . Это необязательный параметр.

Параметр offset используется для указания смещения, с которого в исходном потоке начинается считывание. Отрицательное значение offset позволяет начинать смещение с конца потока. Это необязательный параметр.

Не забудьте, что поиск ( offset ) не поддерживается при дистанционной работе с файлами. В редких случаях при работе с нелокальными файлами могут сработать небольшие смещения, но в этом случае результат работы непредсказуем, так как работа производится в потоке в буфере.

Параметр maxlen используется для указания максимальной длины данных, которые необходимо считать. По умолчанию считывание производится до конца файла. Это необязательный параметр.

Наглядные примеры

file get contents PHP пример использования :

Приведённый выше код позволяет получить и вывести исходный код страницы указанного сайта. В следующем примере показано, как считать фрагмент данных файла:

В следующем примере показано, как использовать контекст потока для дистанционного открытия файла:

Дополнительные советы

  1. В функции file get contents используется POST . Для этого сначала нужно создать контекст:
  1. Можно использовать поточный контекст для установки правильного тайм-аута, не связываясь со значениями php.ini :
  1. В некоторых случаях использования функции PHP file get contents http возникает проблема с кодировкой UTF-8 при считывании URL-адреса с кодировкой отличной от UTF-8 . Это происходит потому, что по умолчанию используется UTF-8 . Приведенная ниже функция решает эту проблему:
  1. Кажется, file ищет файл внутри текущей директории, перед тем как обратиться к include path , даже если установлен флаг FILE_USE_INCLUDE_PATH .

Вроде бы сказано, что include_path – первая локация, в которой должен осуществляться поиск. Но я несколько раз бывал в ситуации, когда директория, содержащая включение файла, оказывалась первой в порядке поиска.

Данная публикация представляет собой перевод статьи « PHP file_get_contents() Function » , подготовленной дружной командой проекта Интернет-технологии.ру

Оцените статью
Много толка
Добавить комментарий