Accès aux URLs HTTP(s)

# http://

# https://

http:// -- https:// — Accès aux URLs HTTP(s)

### Description

Permet des accès, en lecture seule, à des fichiers accessibles via HTTP. Par défaut, une requête HTTP 1.0 GET est utilisée. Un en-tête `Host:` est envoyé avec la requête, pour gérer les hôtes virtuels basés sur des noms. Si une version de navigateur a été configurée avec l'option user_agent dans le fichier php.ini ou via le contexte de flux, elle sera aussi incluse dans la requête.

Le flux permet d'accéder au corps (body) de la ressource. Les en-têtes sont stockés dans la variable $http_response_header.

Pour connaître l'URL de la ressource depuis laquelle le document provient (après l'exécution de toutes les redirections), il est nécessaire d'analyser la série d'en-têtes retournés par le flux.

La directive from sera utilisée pour l'en-tête `From:` si elle a été définie, et non écrasée par les Options et paramètres de contexte.

### Utilisation

- http://example.com
- http://example.com/fichier.php?var1=val1&var2=val2
- http://user:password@example.com
- https://example.com
- https://example.com/fichier.php?var1=val1&var2=val2
- https://user:password@example.com

### Options

Résumé de l'enveloppe
Attribut | Supporté
--- | ---
Restreint par allow_url_fopen | Oui
Autorise la lecture | Oui
Autorise l'écriture | Non
Autorise l'ajout | Non
Autorise la lecture et l'écriture simultanément | N/A
Support de la fonction stat() | Non
Support de la fonction unlink() | Non
Support de la fonction rename() | Non
Support de la fonction mkdir() | Non
Support de la fonction rmdir() | Non

### Exemples

Exemple #1 Détecte la dernière URL après des redirections

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

        /* Avons-nous été redirigés ? */
        if (strtolower(substr($response, 0, 10)) == 'location: ') {

            /* mise à jour de $url avec le chemin après redirection */
            $url = substr($response, 10);
        }

    }

    ?>

### Notes

> Note: HTTPS n'est supporté que si l'extension openssl est active.

Les connexions HTTP sont en lecture seule ; l'écriture de données ou la copie de fichier vers une ressource HTTP ne sont pas supportées.

L'envoi de requêtes POST et PUT, par exemple, peut être effectué à l'aide des contextes HTTP.

### Voir aussi

- Options de contexte HTTP
- $http_response_header
- stream_get_meta_data() - Lit les en-têtes et données méta des flux

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