Опции контекста HTTP
Опции контекста HTTP — Cписок опций контекста HTTP
Описание
Опции контекста для транспортных протоколов http:// и
https://.
Опции
-
method
string
-
GET, POST, или
любой другой метод HTTP, поддерживаемый удаленным сервером.
По умолчанию - GET.
-
Дополнительные заголовки для отправки вместе с запросом. Значения
в этой опции будут переопределять другие значения (такие как
User-agent:, Host:,
и Authentication:).
-
user_agent
string
-
Значение для отправки вместе с заголовком User-Agent:. Это значение
будет использоваться, если заголовок user-agent не был указан
в опции контекста header выше.
По умолчанию используется значение директивы
user_agent
из файла php.ini.
-
content
string
-
Дополнительные данные для отправки после заголовков. Обычно используется
с запросами POST и PUT.
-
proxy
string
-
URI, указывающий адрес прокси-сервера. (Например,
tcp://proxy.example.com:5100).
-
request_fulluri
boolean
-
Когда установлено в TRUE, весь URI будет использован при
построении запроса. (Например,
GET http://www.example.com/path/to/file.html HTTP/1.0).
Хотя это нестандартный формат запроса, некоторые
прокси-серверы требуют его.
По умолчанию значение FALSE.
-
follow_location
integer
-
Следовать переадресациям Location: ...
По умолчанию TRUE.
-
max_redirects
integer
-
Максимальное количество переадресаций, которым можно следовать. Значение 1 или
меньше означает, что никаких переадресаций не будет произведено.
По умолчанию 20.
-
protocol_version
float
-
Версия протокола HTTP.
По умолчанию 1.0.
Замечание:
В PHP до версии 5.3.0 не было реализовано декодирование фрагментированных передач.
Если это значение установлено в 1.1, то это ваша ответственность,
чтобы оно соответствовало версии 1.1.
-
timeout
float
-
Тайм-аут на чтение в секундах, указанный с помощью типа float
(например, 10.5).
По умолчанию используется значение директивы
default_socket_timeout
из файла php.ini.
-
ignore_errors
boolean
-
Извлечь содержимое даже в случае, если присутствует код статуса неуспешного завершения
По умолчанию FALSE
Примеры
Пример #1 Извлечь страницу и отправить данные методом POST
<?php
$postdata = http_build_query(
array(
'var1' => 'некоторое содержимое',
'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);
// информация о заголовках, а также
// мета-данные о потоке
var_dump(stream_get_meta_data($stream));
// актуальная информация по ссылке $url
var_dump(stream_get_contents($stream));
fclose($stream);
?>
Примечания
Замечание:
Опции контекста низлежащего потока в сокете
Дополнительные опции контекста могут поддерживаться
низлежащим транспортным протоколом.
Для потоков http://, это относится к опциям
контекста для транспортного протокола tcp://. Для
потоков https://, это относится к опциям контекста
для транспортного протокола ssl://.
Замечание:
Строка статуса HTTP
Когда эта обертка потока следует по переадресации,
wrapper_data, возвращаемый
функцией stream_get_meta_data(), необязательно содержит
строку статуса HTTP, которая на самом деле относится к содержанию данных
по индексу 0.
array (
'wrapper_data' =>
array (
0 => 'HTTP/1.0 301 Moved Permantenly',
1 => 'Cache-Control: no-cache',
2 => 'Connection: close',
3 => 'Location: http://example.com/foo.jpg',
4 => 'HTTP/1.1 200 OK',
...
Первый запрос вернул код 301 (постоянное перенаправление),
так что обертка потока автоматически последовала этому перенаправлению, чтобы получить
ответ 200 (индекс = 4).