http://
https://
http:// -- https:// — Acessando URLs HTTP(s)
Descrição
Permite acesso somente leitura a arquivos/recursos via HTTP.
Por padrão um GET HTTP 1.0 é usado. Um cabeçalho Host:
é enviado com a requisição
para lidar com hosts virtuais baseados em nomes. Se estiver configurado
uma string user_agent no
arquivo php.ini ou no contexto do fluxo, ele também será incluído
na requisição.
O fluxo permite acesso ao corpo do
recurso; os cabeçalhos são armazenados na
variável $http_response_header.
Se for importante conhecer o URL do recurso de onde
o documento se originou (depois de todos os redirecionamentos processados),
será necessário processar a série de cabeçalhos de resposta retornados pelo
fluxo.
A diretiva from será usada para o
cabeçalho From:
se definida e não sobrescrita pelo
Opções e parâmetros de contexto.
Uso
- http://example.com
- http://example.com/arquivo.php?var1=val1&var2=val2
- http://usuario:senha@example.com
- https://example.com
- https://example.com/arquivo.php?var1=val1&var2=val2
- https://usuario:senha@example.com
Opções
Sumário do Empacotador
Atributo |
Suportado |
Restrito por allow_url_fopen |
Sim |
Permite Leitura |
Sim |
Permite Escrita |
Não |
Permite Adição |
Não |
Permite Leitura e Escrita Simultâneas |
N/A |
Suporta stat() |
Não |
Suporta unlink() |
Não |
Suporta rename() |
Não |
Suporta mkdir() |
Não |
Suporta rmdir() |
Não |
Exemplos
Exemplo #1 Detectando a qual se chegou depois de todos os redirecionamentos
<?php
$url = 'http://www.example.com/redirecting_page.php';
$fp = fopen($url, 'r');
$meta_data = stream_get_meta_data($fp);
foreach ($meta_data['wrapper_data'] as $response) {
/* Fomos redirecionados? */
if (strtolower(substr($response, 0, 10)) == 'location: ') {
/* atualiza $url para onde fomos redirecionados */
$url = substr($response, 10);
}
}
?>
Notas
Nota:
HTTPS só é suportado quando a extensão openssl
estiver habilitada.
Conexões HTTP são somente leitura; escrever dados ou copiar
arquivos para um recurso HTTP não é suportado.
Enviar requisições POST e PUT, por exemplo,
pode ser feito com a ajuda de Contextos HTTP.