Opções e parâmetros de contexto
PHP Manual

Opções de contexto do HTTP

Opções de contexto do HTTPLista de opções de contexto do HTTP

Descrição

Opções de contexto dos transportadores http:// e https://.

Opções

method string

GET, POST, ou qualquer outro método HTTP suportado pelo servidor remoto.

GET como padrão.

header array or string

Cabeçalhos adicionais que deverrão ser enviados durante a requisição. Valores nesta opção sobrescreverão outros valores (como User-agent:, Host:, e Authentication:).

user_agent string

Valor a ser enviado no cabeçalho User-Agent:. Esta valor só será utilizado se o user-agent não for especificado na opção de contexto header acima.

Por padrão, a configuração user_agent no php.ini é utilizada.

content string

Dados adicionais a serem enviados depois dos cabeçalhos. Tipicamente utilizado em requisições POST ou PUT.

proxy string

URI que especifica o endereço do servidor de proxy. (por exemplo, tcp://proxy.example.com:5100).

request_fulluri boolean

Quando definido como TRUE, toda a URI será utilizada na construção da requisição. (por exemplo GET http://www.example.com/path/to/file.html HTTP/1.0). Mesmo não sendo um formato padronizado de requisição, alguns servidores de proxy o exigem.

FALSE como padrão.

follow_location integer

Segue os redirecionamentos feitos com o cabeçalho Location. Defina com 0 para desabilitar.

1 como padrão.

max_redirects integer

O número máximo de redirecionamentos a serem feitos. O valor 1 ou inferiores significarão que os redirecionamentos não são feitos.

20 como padrão.q

protocol_version float

Versão do protocolo HTTP.

1.0 como padrão.

Nota:

Em versões do PHP inferiores a 5.3.0 não era implementada a decodificação de transferência fragmentada. Se este valor estiver definido com 1.1, é de sua responsabilidade fazer que seja compatível com a versão 1.1.

timeout float

Timeout de leitura em segundos, especificado com um float (por exemplo, 10.5).

Por padrão, a configuração default_socket_timeout do php.ini é utilizada.

ignore_errors boolean

Retorna o conteúdo mesmo que códigos de status falhos sejam retornados.

FALSE.

Changelog

Versão Descrição
5.3.4 Adicionado o parâmetro follow_location.
5.3.0 O parâmetro protocol_version suporta decodificação de transferência fragmentada quando definido como 1.1..
5.2.10 Adicionado o parâmetro ignore_errors.
5.2.10 O parâmetro header tornou-se um array numericamente indexado.
5.2.1 Adicionado o parâmetro timeout.
5.1.0 Adicionada a possibilidade de se fazer proxies HTTPS em proxies HTTP.
5.1.0 Adicionado o parâmetro max_redirects.
5.1.0 Adicionado o parâmetro protocol_version.

Exemplos

Exemplo #1 Buscando uma página e enviando dados pelo método 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);

?>

Exemplo #2 Ignorando redirecionamentos, mas trazendo os cabeçalhos e conteúdo

<?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);
?>

Notas

Nota: Opções de contextos de streams socket básicos
Opções de contextos adicionais podem ser suportadas em transportes básicos Em streams ftp://, use as opções de contexto do transporte tcp://. Em streams ftps://, use as opções de contexto do transporte ssl://.

Nota: Linha de status HTTP
Quando este empacotador de stream faz um redirecionamento, o wrapper_data retornado pela função stream_get_meta_data() pode não conter necessariamente a linha de status HTTP, que atualmente se aplica ao conteúdo no índice 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',
    ...
A primeira requisição retornou 301 (redirecionamento permanente), então o empacotador de stream automaticamente fará o redirecionamento para conseguir uma resposta 200 (índice = 4).

Veja Também


Opções e parâmetros de contexto
PHP Manual