Acessando URLs HTTP(s)

# 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.

### Veja Também

- Opções de contexto do HTTP
- $http_response_header
- stream_get_meta_data() - Obtém cabeçalhos/metadados de ponteiros de arquivos/fluxos

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open