Отправка POST-запроса с помощью file_get_content
Так уж сложилось, что для отправки запросов на PHP чаще всего используются функции cURL. Действительно, с их помощью можно сформировать практически любой запрос на удаленный или локальный сервер, с любыми параметрами, заголовками и т.п. А функцию file_get_contents() обычно применяют для чтения локальных файлов или для простого захвата содержимого одиночной web-страницы GET-запросом. Но если дополнить функцию file_get_contents правильно настроенным контекстом, то она получает способность также отправлять запросы разных типов и с различными параметрами. Контекст запроса настраивается при помощи функции stream_context_create(). Отправка запроса выполняется по следующей схеме:Code (PHP) : Убрать нумерацию
- // Данные формы для отправки
- $form_data=array(
- 'login'=>'uzar@example.com',
- 'password'=>'supadupapassa',
- );
- // Настраиваем контекст
- $context=stream_context_create(
- array(
- 'http'=>array(
- 'method'=>'POST',
- 'header'=>
- 'Content-Type: application/x-www-form-urlencoded'.PHP_EOL.
- 'Cookie: session_id=123abcdef; utm=example'.PHP_EOL.
- 'User-Agent: Mozilla Interfax',
- 'content'=>http_build_query($form_data),
- )
- )
- );
- // Отправить POST-запрос и получить ответ
- $html=file_get_contents('https://example.com/auth.php', false, $context);
- echo $html;
Для отправки запроса на https в настройках PHP должно быть включено расширение php_openssl, иначе функция завершится с ошибкой типа "file_get_contents(): Unable to find the wrapper https".
Просмотров: 662 | Комментариев: 1
Метки: PHP
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
DiPrm
(22.10.2022 в 17:53):
Хорошо помню, что читал эту статью 10 лет назад) Решил поискать, но той страницы уже нет, вновь повеселили каменты той давности.
Добавить комментарий
Заполните форму для добавления комментария