Функция file_get_contents($filename)
— читает содержимое файла в строку, если в $filename
указать URL, то функция попытается получить содержимое веб-станицы GET-запросом.
Чтобы отправить POST-запрос достаточно дополнительно отправить HTTP-заголовки с помощью функции stream_context_create(), в параметре $context
функции file_get_contents()
:
$post = array(
'name' => 'Alex',
'email' => 'mail@example.com'
);
$headers = stream_context_create(
array(
'http' => array(
'method' => 'POST',
'header' => 'Content-Type: application/x-www-form-urlencoded',
'content' => http_build_query($post),
)
)
);
echo file_get_contents('https://example.com', false, $headers);
Куки передаются заголовком «Cookie», содержащий пары ключ=значение
, разделенные «;
».
$post = array(
'name' => 'Alex',
'email' => 'mail@example.com'
);
$headers = stream_context_create(
array(
'http' => array(
'method' => 'POST',
'header' => 'Content-Type: application/x-www-form-urlencoded' . PHP_EOL .
'Cookie: user=admin; pass=123456',
'content' => http_build_query($post),
)
)
);
echo file_get_contents('https://example.com', false, $headers);
Если запрашиваемая страница закрыта базовой HTTP-аутентификацией, то можно отправить логин и пароль заголовком «Authorization: Basic ...
».
$auth = base64_encode('user:password');
$post = array(
'name' => 'Alex',
'email' => 'mail@example.com'
);
$headers = stream_context_create(
array(
'http' => array(
'method' => 'POST',
'header' => 'Content-Type: application/x-www-form-urlencoded' . PHP_EOL .
'Authorization: Basic ' . $auth,
'content' => http_build_query($post),
)
)
);
echo file_get_contents('https://example.com', false, $headers);
Для протокола OAuth используются заголовки Authorization: OAuth ТОКЕН
или Authorization: Bearer ТОКЕН
.