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.