watch your case when using methods (POST and GET)...it must be always uppercase. in case of you write it in lower case it wont work.
Опции контекста HTTP
Опции контекста HTTP — Cписок опций контекста HTTP
Описание
Опции контекста для транспортных протоколов http:// и https://.
Список изменений
| Версия | Описание |
|---|---|
| 5.3.4 |
Добавлен параметр follow_location.
|
| 5.3.0 |
Параметр protocol_version поддерживает декодирование фрагментированной
передачи, когда установлен в 1.1.
|
| 5.2.10 |
Добавлен параметр ignore_errors.
|
| 5.2.10 |
Параметр header теперь может быть типа array с числовыми индексами.
|
| 5.2.1 |
Добавлен параметр timeout.
|
| 5.1.0 | Добавлено проксирование протокола HTTPS через HTTP-прокси. |
| 5.1.0 |
Добавлен параметр max_redirects.
|
| 5.1.0 |
Добавлен параметр protocol_version.
|
Примеры
Пример #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.Первый запрос вернул код 301 (постоянное перенаправление), так что обертка потока автоматически последовала этому перенаправлению, чтобы получить ответ 200 (индекс = 4).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', ...
Note that if the server is not able to 'getaddresses' change the name to an ip address and that'll sort that out for internal looking calls and posts.
