[11:47]
[🔒]
✪
Статья
Нюансы PHP. POST-запрос через file_get_content()
Категории: Программир.; Интернет, сети, web;
Функция file_get_contents($filename) — читает содержимое файла в строку, если в $filename указать URL, то функция попытается получить содержимое веб-станицы GET-запросом.
echo file_get_contents('https://example.com');
Чтобы отправить 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 ТОКЕН.
Оригинальный текст статьи можно посмотреть на сайте https://snipp.ru/php/post-file-get-content
Чтобы написать комментарий нужно, зарегистрироваться
Голосования и тесты: 0