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

1-ый способ: cURL (рекомендуется)

Отправить POST-запрос можно через cURL.

// переменные для POST-запроса
$post = [
    'lang' => 'PHP',
    'vers' => '7.0'
];
 
// Отправка POST-запроса
$ch = curl_init('http://example.com/');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($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-запросами.