Отправить POST-запрос (curl)

1-ый способ: 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 указывает, что ответ надо возвращать в переменную, а не выводить на странице.

2-ой способ: 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-запросами.

Похожие страницы