Отправить GET или POST-запрос
1-ый способ: библиотека Guzzle (рекомендуемый)
Библиотека Guzzle весьма популярна, и используется фреймворками «Symfony» и «Laravel» для HTTP-запросов.
Сначала библиотеку надо установить:
composer require guzzlehttp/guzzle
Теперь её можно использовать:
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://site-name.ru/');
$response->getStatusCode(); // 200
$response->getBody(); // HTML-контент
2-ой способ: cURL
Отправить POST-запрос можно через cURL.
// переменные для POST-запроса
$post = [
'lang' => 'PHP',
'vers' => '8.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 используется библиотека «libcurl».
3-ий способ: file_get_contents
Если сервер не поддерживает работу с cURL, то POST-запрос можно отправить через функцию file_get_contents().
// переменные для POST-запроса
$post = [
'lang' => 'PHP',
'vers' => '8.4'
];
// отправка POST-запроса
$options = [
'http' => [
'header' => 'Content-type: application/x-www-form-urlencoded'.PHP_EOL,
'method' => 'POST',
'content' => http_build_query($post)
]
];
$context = stream_context_create($options);
$data = file_get_contents('https://example.ru/', false, $context);
В переменной $data содержится контент указанной страницы, загруженная с указанными POST-запросами.
Похожие страницы
Поддержать автора
Все статьи создаются и поддерживаются одним человеком,
если вам нравится контент, вы можете поддержать автора сайта
