Отправить POST-запрос (curl)
1-ый способ: cURL (рекомендуется)
Отправить POST-запрос можно через cURL.
// переменные для POST-запроса $post = [ 'lang' => 'PHP', 'vers' => '7.4' ]; // Отправка POST-запроса $ch = curl_init('https://example.ru/'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($ch); // Ответ сервера if (curl_errno($ch)) { echo 'Ошибка curl: '.curl_error($ch); } // Завершить сеанс с cURL и освободить ресурсы curl_close($ch);
В переменной $data
содержится контент указанной страницы, загруженная с указанными POST-запросами.
Параметр CURLOPT_RETURNTRANSFER
указывает, что ответ надо возвращать в переменную, а не выводить на странице.
Если cURL не работает, его надо установить:
apt-get install php5-curl # php 5 apt-get install php-curl # php 7
После установки надо перезапустить веб-сервер, чтобы cURL добавился в настройки PHP.
2-ой способ: file_get_contents
Если сервер не поддерживает работу с cURL, то POST-запрос можно отправить через функцию file_get_contents()
.
// переменные для POST-запроса $post = [ 'lang' => 'PHP', 'vers' => '7.0' ]; // отправка POST-запроса $options = [ 'http' => [ 'header' => "Content-type: application/x-www-form-urlencoded\r\n", 'method' => 'POST', 'content' => http_build_query($post) ] ]; $context = stream_context_create($options); $data = file_get_contents('http://example.com/', false, $context);
В переменной $data
содержится контент указанной страницы, загруженная с указанными POST-запросами.
Авторизуйтесь, чтобы добавлять комментарии