HTTP context options
Оновлено: 12.05.2023
Параметри контексту HTTP - список параметрів контексту HTTP
Контекстні опції для http:// та https:// переходів.
рядок методу
GET, POST або будь-який інший HTTP-метод, що підтримується віддаленим сервером.
За замовчуванням GET.
масив або рядок заголовка
Додаткові заголовки, які будуть надіслані під час запиту. Значення в цьому параметрі будуть перевизначати інші значення (такі як User-agent:, Host: і Authentication:), навіть при перенаправленнях follow_location:. Таким чином, не рекомендується задавати заголовок Host:, якщо увімкнено follow_location.
рядок user_agent
Значення для відправки з заголовком User-Agent:. Це значення буде використано тільки якщо user-agent не вказано в опції контексту заголовка вище.
За замовчуванням використовується значення user_agent php.ini.
рядок вмісту
Додаткові дані, що надсилаються після заголовків. Зазвичай використовується з POST або PUT запитами.
рядок проксі
URI, що вказує адресу проксі-сервера. (Наприклад, tcp://proxy.example.com:5100).
request_fulluri bool
Якщо встановлено в true, при побудові запиту буде використано весь URI. (Наприклад, GET http://www.example.com/path/to... HTTP/1.0). Хоча це нестандартний формат запиту, деякі проксі-сервери вимагають його використання.
За замовчуванням має значення false.
follow_location int
Перенаправлення за заголовком Location. Встановіть значення 0, щоб вимкнути.
За замовчуванням 1.
max_redirects int
Максимальна кількість перенаправлень, які слід виконати. Значення 1 або менше означає, що перенаправлення не виконується.
За замовчуванням 20.
protocol_version float
Версія протоколу HTTP.
За замовчуванням 1.1, починаючи з версії PHP 8.0.0; до цієї версії за замовчуванням було 1.0.
таймаут з плаваючою комою
Таймаут читання в секундах, заданий числом з плаваючою комою (наприклад, 10.5).
За замовчуванням використовується значення default_socket_timeout php.ini.
ignore_errors bool
Отримувати вміст навіть за наявності кодів статусу помилки.
За замовчуванням false.
GET, POST або будь-який інший метод HTTP, що підтримується віддаленим сервером.
За замовчуванням GET.
Додаткові заголовки, які надсилатимуться під час запиту. Значення в цій опції замінять інші значення (такі як User-agent:, Host: і Authentication:), навіть якщо перенаправлення відбувається за допомогою follow_location:. Таким чином, не рекомендується задавати заголовок Host:, якщо увімкнено follow_location.
Значення для надсилання з User-Agent: header. Це значення буде використано лише у тому випадку, якщо user-agent не вказано у контекстному параметрі заголовка вище.
За замовчуванням використовується параметр user_agent php.ini.
Додаткові дані, що надсилаються після заголовків. Зазвичай використовуються із запитами POST або PUT.
URI, що вказує адресу проксі-сервера. (Наприклад, tcp://proxy.example.com:5100).
Якщо встановлено значення true, при побудові запиту буде використано весь URI. (Наприклад, GET http://www.example.com/path/to/file.html HTTP/1.0). Хоча це нестандартний формат запиту, деякі проксі-сервери вимагають його.
За замовчуванням false.
Дотримуватися перенаправлень заголовка Location. Встановіть 0, щоб вимкнути.
За замовчуванням 1.
Максимальна кількість перенаправлень. Значення 1 або менше означає, що перенаправлення не виконується.
За замовчуванням 20.
Версія протоколу HTTP.
Значення за замовчуванням 1.1, починаючи з версії PHP 8.0.0; до цієї версії значенням за замовчуванням було 1.0.
Тайм-аут зчитування в секундах, заданий числом з плаваючою комою (наприклад, 10.5).
За замовчуванням використовується значення default_socket_timeout php.ini.
Отримуйте вміст навіть за кодами статусу збою.
За замовчуванням false.
Приклад #1 Отримати сторінку та надіслати POST-дані
<?php
$postdata = http_build_query(
array(
'var1' => 'some content',
'var2' => 'doh'
)
);
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata
)
);
$context = stream_context_create($opts);
$result = file_get_contents('http://example.com/submit.php', false, $context);
?>
Приклад #2 Ігнорувати перенаправлення, але отримувати заголовки та вміст
<?php
$url = "http://www.example.org/header.php";
$opts = array('http' =>
array(
'method' => 'GET',
'max_redirects' => '0',
'ignore_errors' => '1'
)
);
$context = stream_context_create($opts);
$stream = fopen($url, 'r', false, $context);
// header information as well as meta data
// about the stream
var_dump(stream_get_meta_data($stream));
// actual data at $url
var_dump(stream_get_contents($stream));
fclose($stream);
?>
Примітка: Параметри контексту базового потоку сокетів
Додаткові параметри контексту можуть підтримуватися базовим транспортом Для потоків http:// зверніться до параметрів контексту для транспорту tcp://. Для потоків https:// зверніться до параметрів контексту для транспорту ssl://.
Примітка: Рядок стану HTTP
Коли ця обгортка потоку слідує за перенаправленням, дані wrapper_data, повернуті функцією stream_get_meta_data(), не обов'язково міститимуть рядок стану HTTP, який насправді стосується даних вмісту з індексом 0.