Php file get contents get параметры

file_get_contents

Прим. переводчика. На базе этой функции часто строятся простейшие HTML-парсеры. Т.е. указывается URL нужной HTML страницы.
Функция возвращает страницу в виде строки, которую по HTML-тегам обрабатывает парсер.

Описание

string file_get_contents ( string $filename [, int $flags = 0 [, resource $context [, int $offset = -1 [, int $maxlen = -1 ]]]] )

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

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

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

Примечание: Значение по умолчанию параметра maxlen не равно -1. По умолчанию значение этого параметра равно внутренней константе PHP, которая означает копировать все содержимое файла пока не встретится символ «конец файла». Если Вы хотите получить все содержимое файла, просто не используйте этот параметр.

Параметры

Имя файла, который надо прочитать.

Примечание: До версии PHP 6, этот параметр называется use_include_path, тип данных bool. Как и в PHP 5 параметр FILE_USE_INCLUDE_PATH может использоваться для указания, надо ли выполнять поиск в каталогах include path.

Значение параметра flags может быть представлено как комбинация следующих флагов (с некоторыми ограничениями), объединенных бинарной операцией И (|)

Возможные значения параметра flags

значение описание
FILE_USE_INCLUDE_PATH Искать filename в каталогах, описанных в параметре include_path.
FILE_TEXT В PHP 6 кодировка файла по умолчанию установлена в UTF-8. Вы можете задать другую кодировку, создав пользовательский контекст (custom context) или используя stream_default_encoding(). Этот флаг не может использоваться с флагом (FILE_BINARY).
FILE_BINARY Если этот флаг установлен, то файл будет прочитан в бинарном режиме. Это значение установлено по умолчанию и не может использоваться совместно с флагом FILE_TEXT.

Ресурс контекста (context resource) создается при помощи функции stream_context_create(). Если Вам не нужен пользовательский контекст (custom context), просто пропустите этот параметр, установив NULL.

Это смещение, с которого должно начаться чтение файла.

Максимальная длина данных, которые надо прочитать. Если значение не задано, файл будет прочитан до конца.

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

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

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

Пример #1 Получение и вывод исходного текста домашней страницы web-сайта

$homepage = file_get_contents ( ‘http://www.example.com/’ );
echo $homepage ;
?>

Пример #2 Поиск в каталогах include_path

// $file = file_get_contents ( ‘./people.txt’ , true );
// > PHP 5
$file = file_get_contents ( ‘./people.txt’ , FILE_USE_INCLUDE_PATH );
?>

Пример #3 Чтение части файла

//Будет прочитано 14 символов, начиная с 21го
$section = file_get_contents ( ‘./people.txt’ , NULL , NULL , 20 , 14 );
var_dump ( $section );
?>

В этом примере результат будет примерно такой:

Пример #4 Использование потокового контекста

// Подготовка контекста
$opts = array(
‘http’ =>array(
‘method’ => «GET» ,
‘header’ => «Accept-language: en\r\n» .
«Cookie: foo=bar\r\n»
)
);

$context = stream_context_create ( $opts );

//Открытие файла с использованием HTTP — залоговка, заданного выше
$file = file_get_contents ( ‘http://www.example.com/’ , false , $context );
?>

История изменения

Версия Описание
6.0.0 Параметр use_include_path заменен на flags.
5.1.0 Добавлены параметры offset и maxlen.
5.0.0 Добавлена поддержка контекста (context).

Примечания

Примечание: Эта функция может безопасно обрабатывать бинарные данные.

Имя файла может быть задано в виде URL только в том случае, если была включена настройка PHP fopen wrappers. Смотрите документацию к функции fopen(), чтобы узнать как задать имя файла. Для получения подробной информации об обертках (wrapper) смотрите List of Supported Protocols/Wrappers.

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

Внимание.
Комментировать могут только зарегистрированные пользователи.
Возможно использование следующих HTML тегов: , , ,
.

bambr 27.03.2019 14:52:41
Все получается, но не могу разобраться, как настроить переход по внутренним ссылкам на сайте $homepage = str_replace(‘http://site.ru’,’http://site.ru’ , $homepage ); в браузере адрес меняется, а на сайте всегда одна главная показывается.

Источник

file_get_contents

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

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

Замечание:

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

Список параметров

Замечание:

Можно использовать константу FILE_USE_INCLUDE_PATH для поиска файла в include path. Только помните, что если вы используете строгую типизацию, то так сделать не получится, поскольку FILE_USE_INCLUDE_PATH имеет тип int . В таком случае используйте true .

Корректный ресурс контекста, созданный с помощью функции stream_context_create() . Если в использовании особого контекста нет необходимости, можно пропустить этот параметр передав в него значение null .

Смещение, с которого начнётся чтение оригинального потока. Отрицательное значение смещения будет отсчитываться с конца потока.

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

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

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

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

Эта функция может возвращать как логическое значение false , так и значение не типа boolean, которое приводится к false . За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Ошибки

Будет сгенерирована ошибка уровня E_WARNING в случаях, если не удастся найти filename , задан length меньше нуля, или поиск по смещению offset в потоке завершится неудачно.

Когда file_get_contents() вызывается в каталоге, в Windows ошибка генерируется E_WARNING , а с PHP 7.4 также в других операционных системах.

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

Версия Описание
8.0.0 Параметр length теперь допускает значение null .
7.1.0 Добавлена поддержка отрицательных значений offset .

Примеры

Пример #1 Получить и вывести исходный код домашней страницы сайта

Пример #2 Поиск файлов в include_path

// Если включены строгие типы, то есть объявлено (strict_types=1);
$file = file_get_contents ( ‘./people.txt’ , true );
// Иначе
$file = file_get_contents ( ‘./people.txt’ , FILE_USE_INCLUDE_PATH );
?>

Пример #3 Чтение секции файла

// Читаем 14 символов, начиная с 21 символа
$section = file_get_contents ( ‘./people.txt’ , FALSE , NULL , 20 , 14 );
var_dump ( $section );
?>

Результатом выполнения данного примера будет что-то подобное:

Пример #4 Использование потоковых контекстов

// Создаём поток
$opts = array(
‘http’ =>array(
‘method’ => «GET» ,
‘header’ => «Accept-language: en\r\n» .
«Cookie: foo=bar\r\n»
)
);

$context = stream_context_create ( $opts );

// Открываем файл с помощью установленных выше HTTP-заголовков
$file = file_get_contents ( ‘http://www.example.com/’ , false , $context );
?>

Примечания

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

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

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

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

  • file() — Читает содержимое файла и помещает его в массив
  • fgets() — Читает строку из файла
  • fread() — Бинарно-безопасное чтение файла
  • readfile() — Выводит файл
  • file_put_contents() — Пишет данные в файл
  • stream_get_contents() — Читает оставшуюся часть потока в строку
  • stream_context_create() — Создаёт контекст потока
  • $http_response_header

Источник

PHP: знакомимся с функцией file_get_contents()

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

string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = 0 [, int $maxlen ]]]] )

Пример использования 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 используется для указания максимальной длины данных, которые необходимо считать. По умолчанию считывание производится до конца файла. Это необязательный параметр.

Источник

Читайте также:  Mr. Camel
Оцените статью