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

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

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

Отправка POST-запроса

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

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

POST-запрос с авторизацией

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

Комментарии

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

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

Авторизация через .htaccess
У сервера apache есть возможность сделать базовую авторизацию. Чтобы закрыть директорию, в неё нужно поместить два файла – .htaccess и .htpasswd.
36063
+3
Перекодировка текста UTF-8 и WINDOWS-1251
Проблема кодировок часто возникает при написании парсеров, чтении данных из xml и csv файлов. Ниже представлены способы...
74884
-13
Запись и чтение файлов в PHP
Примеры сохранения и чтения текстовых данных и массивов в файлы.
57608
+11
Отдача файлов на скачивание PHP
В PHP отправка файла в браузер на скачивание осуществляется в 2 этапа...
28841
+4
Массив $_SERVER
Описание значений глобального массива $_SERVER с примерами.
52628
+3
Интеграция с платежной системой PayKeeper в PHP
Платежная платформа PayKeeper позволяет принимать оплату заказов по ссылке, используя данный метод можно с легкостью...
9551
+1