Опции контекста HTTP

Опции контекста HTTPСписок опций контекста HTTP

Описание

Опции контекста для транспортных протоколов http:// и https://.

Опции

method string

GET, POST или любой другой метод HTTP, поддерживаемый удаленным сервером.

По умолчанию GET.

header array или string

Дополнительные заголовки для отправки вместе с запросом. Значения в этой опции будут переопределять другие значения (такие как 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 bool

Когда установлено в true, весь URI будет использован при формировании запроса. (Например, GET http://www.example.com/path/to/file.html HTTP/1.0). Хотя это нестандартный формат запроса, некоторые прокси-серверы требуют его.

По умолчанию false.

follow_location int

Следовать переадресациям заголовка Location. Для отключения установите в значение 0.

По умолчанию 1.

max_redirects int

Максимальное количество переадресаций, которым можно следовать. Значение 1 или меньше означает, что никаких переадресаций не будет произведено.

По умолчанию 20.

protocol_version float

Версия протокола HTTP.

По умолчанию 1.0.

timeout float

Тайм-аут на чтение в секундах, указанный с помощью типа float (например, 10.5).

По умолчанию используется значение директивы default_socket_timeout из файла php.ini.

ignore_errors bool

Извлечь содержимое даже при неуспешных статусах завершения.

По умолчанию 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).