Opções de contexto do HTTP
  Opções de contexto do HTTP — Lista de opções de contexto do HTTP
  
 
  Descrição
  
   Opções de contexto dos transportadores http:// e
   https://.
  
  
 
  Opções
  
   
    
     - 
      methodstring
- 
      
       GET,POSTou
       qualquer outro método HTTP suportado pelo servidor remoto.
 
       GETé o padrão.
 
- 
      
       Cabeçalhos adicionais que devem ser enviados durante a requisição. Valores
       nesta opção sobrescrevem outros valores (como
       User-agent:,Host:,
       eAuthentication:),
       mesmo ao seguir redirecionamentosLocation:.
       Portanto, não é recomendado definir um cabeçalhoHost:,
       sefollow_locationestiver habilitado.
 
       Os valores em string devem ser pares de Chave: valordelimitados por\r\n, por exemplo,."Content-Type: application/json\r\nConnection: close".
       Os valores em array devem ser uma lista de pares deChave: valor, por exemplo,["Content-Type: application/json", "Connection: close"].
 
- 
      user_agentstring
- 
      
       Valor a ser enviado no cabeçalho  User-Agent:. Este valor só
       é utilizado se o user-agent não for especificado
       na opção de contextoheaderacima.
 
       Por padrão, a configuração
       user_agent
       do php.ini é utilizada.
       
- 
      contentstring
- 
      
       Dados adicionais a serem enviados depois dos cabeçalhos. Tipicamente utilizado
       em requisições POST ou PUT.
       
- 
      proxystring
- 
      
       URI que especifica o endereço do servidor de proxy (ex.:
       tcp://proxy.example.com:5100).
 
- 
      request_fulluribool
- 
      
       Quando definido como true, todo o URI será utilizado na
       construção da requisição (ex.: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é o padrão.
 
- 
      follow_locationint
- 
      
       Segue os redirecionamentos feitos com o cabeçalho Location.
       Defina com0para desabilitar.
 
       1é o padrão.
 
- 
      max_redirectsint
- 
      
       O número máximo de redirecionamentos a serem feitos. O valor 1ou
       inferior significam que os redirecionamentos não serão feitos.
 
       20é o padrão.
 
- 
      protocol_versionfloat
- 
      
       Versão do protocolo HTTP.
       
       O padrão é 1.1a partir do PHP 8.0.0;
       antes dessa versão o padrão era1.0.
 
- 
      timeoutfloat
- 
      
       Limite de tempo 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_errorsbool
- 
      
       Retorna o conteúdo mesmo que códigos de status de falha sejam retornados.
       
       false.
 
 
 
  Exemplos
  
   
    Exemplo #1 Buscando uma página e enviando dados pelo método POST
    
<?php
$postdata = http_build_query(
    [
        'var1' => 'some content',
        'var2' => 'doh'
    ]
);
$opts = [
    'http' => [
        '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 = [
    'http' => [
        'method' => 'GET',
        'max_redirects' => '0',
        'ignore_errors' => '1'
    ]
];
$context = stream_context_create($opts);
$stream = fopen($url, 'r', false, $context);
// informação de cabeçalho e metadados
// sobre o fluxo
var_dump(stream_get_meta_data($stream));
// dados reais no $url
var_dump(stream_get_contents($stream));
fclose($stream);
?>
     
    
  
  
 
  Notas
  Nota: 
   Opções de contextos de soquetes de fluxo básicos
   
    Opções de contextos adicionais podem ser suportadas em
    transportes básicos
    Em fluxos http://, use
    as opções de contexto do transporte tcp://. Em fluxos
    https://, use as opções de contexto do
    transporte ssl://.
   
  
  Nota: 
   Linha de status HTTP
   
    Quando este empacotador de fluxo 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 Permanently',
    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),
    com isso o empacotador de fluxo fará o redirecionamento automaticamente para conseguir
    uma resposta 200 (índice = 4).