Blog. Just Blog

Отправка POST-запроса с помощью file_get_content

28.09.2022 | Категория: Web-мастеру и не только | Автор: ManHunter
Так уж сложилось, что для отправки запросов на PHP чаще всего используются функции cURL. Действительно, с их помощью можно сформировать практически любой запрос на удаленный или локальный сервер, с любыми параметрами, заголовками и т.п. А функцию file_get_contents() обычно применяют для чтения локальных файлов или для простого захвата содержимого одиночной web-страницы GET-запросом. Но если дополнить функцию file_get_contents правильно настроенным контекстом, то она получает способность также отправлять запросы разных типов и с различными параметрами. Контекст запроса настраивается при помощи функции stream_context_create(). Отправка запроса выполняется по следующей схеме:
  1. // Данные формы для отправки
  2. $form_data=array(
  3.     'login'=>'uzar@example.com',
  4.     'password'=>'supadupapassa',
  5. );
  6. // Настраиваем контекст
  7. $context=stream_context_create(
  8.     array(
  9.         'http'=>array(
  10.             'method'=>'POST',
  11.             'header'=>
  12.                 'Content-Type: application/x-www-form-urlencoded'.PHP_EOL.
  13.                 'Cookie: session_id=123abcdef; utm=example'.PHP_EOL.
  14.                 'User-Agent: Mozilla Interfax',
  15.             'content'=>http_build_query($form_data),
  16.         )
  17.     )
  18. );
  19. // Отправить POST-запрос и получить ответ
  20. $html=file_get_contents('https://example.com/auth.php'false$context);
  21. echo $html;
Настройка заголовков схожа с cURL, но там для этого используется массив, а в контексте это строки, разделенные символом PHP_EOL.

Для отправки запроса на https в настройках PHP должно быть включено расширение php_openssl, иначе функция завершится с ошибкой типа "file_get_contents(): Unable to find the wrapper https".

Просмотров: 600 | Комментариев: 1

Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2024
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.09 сек. / MySQL: 1 (0.0174 сек.) / Память: 4.5 Mb
Наверх