POST-запрос через file_get_content()

Функция file_get_contents($filename) — читает содержимое файла в строку, если в $filename указать URL, то функция попытается получить содержимое веб-станицы GET-запросом.

echo file_get_contents('https://example.com');
PHP

Чтобы отправить 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);
PHP

Куки передаются заголовком «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);
PHP

Если запрашиваемая страница закрыта базовой 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);
PHP

Для протокола OAuth используются заголовки Authorization: OAuth ТОКЕН или Authorization: Bearer ТОКЕН.

11.12.2021, обновлено 13.12.2021
323
Предыдущая запись Отправка формы через PHP CURL

Комментарии

, чтобы добавить комментарий.

Другие публикации

Перекодировка текста UTF-8 и WINDOWS-1251
Проблема кодировок часто возникает при написании парсеров, чтении данных из xml и csv файлов. Ниже представлены способы...
22898
+3
Запись и чтение файлов в PHP
Примеры сохранения и чтения текстовых данных и массивов в файлы.
9657
+4
Отдача файлов на скачивание PHP
В PHP отправка файла в браузер на скачивание осуществляется в 2 этапа...
13980
+3
Массив $_SERVER
Описание значений глобального массива $_SERVER с примерами.
23311
+2
Интеграция с платежной системой PayKeeper в PHP
Платежная платформа PayKeeper позволяет принимать оплату заказов по ссылке, используя данный метод можно с легкостью...
4126
0
Примеры отправки AJAX JQuery
AJAX позволяет отправить и получить данные без перезагрузки страницы. Например, делать проверку форм, подгружать контент и т.д. А функции JQuery значительно упрощают работу.
141235
+22