Liste des options de contexte HTTP

# Options de contexte HTTP

Options de contexte HTTP — Liste des options de contexte HTTP

### Description

Options de contexte pour les protocoles `http://` et `https://`.

### Options

`method` string

  `GET`, `POST`, ou n'importe quelle autre méthode HTTP supportée par le serveur distant.

  Par défaut, vaut `GET`.

`header` array ou string

  En-têtes supplémentaires à envoyer lors de la requête. Les valeurs de cette option écraseront les autres valeurs (comme `User-agent:`, `Host:`, et `Authentication:`), même en suivant les redirections `Location:`. Ainsi, il n'est pas recommandé de définir l'en-tête `Host:`, si `follow_location` est activé.

  Une chaîne de caractères doit contenir des paires `Clé : valeur` délimitées par `\r\n`, par exemple : `"Content-Type: application/json\r\nConnection: close"`. Un tableau doit contenir une liste de paires `Clé : valeur`, par exemple : `["Content-Type: application/json", "Connection: close"]`.

`user_agent` string

  Valeur à envoyer avec l'en-tête `User-Agent:`. Cette valeur ne doit être utilisée que si l'agent utilisateur n'est pas spécifié dans l'option de contexte `header` ci-dessus.

  Par défaut, la valeur de l'option de configuration user_agent du fichier php.ini sera utilisée.

`content` string

  Les données supplémentaires à envoyer après les en-têtes. Typiquement utilisées lors des requêtes POST ou PUT.

`proxy` string

  URI de l'adresse du proxy (e.g. `tcp://proxy.example.com:5100`).

`request_fulluri` bool

  Lorsque défini à `true`, l'URI entière sera utilisée lors de la construction de la requête (e.g. `GET http://www.example.com/path/to/file.html HTTP/1.0`). Bien que ce format de demande ne soit pas standard, certains serveurs de proxy le demandent.

  Par défaut, vaut `false`.

`follow_location` int

  Suit les redirections `Location`. À définir à `0` pour désactiver.

  Par défaut, vaut `1`.

`max_redirects` int

  Le nombre maximal de redirections à suivre. La valeur `1` ou inférieure signifie qu'aucune redirection ne sera suivie.

  Par défaut, vaut `20`.

`protocol_version` float

  Version du protocole HTTP.

  Par défaut, vaut `1.1` à partir de PHP 8.0.0 ; antérieur à cette version, la valeur par défaut était `1.0`.

`timeout` float

  Délai maximal d'attente pour la lecture en secondes, sous la forme d'un nombre décimal (e.g. `10.5`).

  Par défaut, la valeur de l'option de configuration default_socket_timeout du fichier php.ini sera utilisée.

`ignore_errors` bool

  Récupère le contenu même lors de la réception d'un code d'échec.

  Par défaut, vaut `false`.

### Exemples

Exemple #1 Récupération d'une page et envoi de données POST

    <?php

    $postdata = http_build_query(
        [
            'var1' => 'du contenu',
            '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);

    ?>

Exemple #2 Ignore les redirections mais récupère les en-têtes et le contenu

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

    // informations sur les en-têtes et métadonnées du flux
    var_dump(stream_get_meta_data($stream));

    // données actuelles de $url
    var_dump(stream_get_contents($stream));
    fclose($stream);
    ?>

### Notes

> Note: Options de contexte du flux sous-jacent
> Des options de contexte supplémentaires peuvent être supportées par le transport sous-jacent. Pour les flux `http://`, se référer aux options de contexte du transport `tcp://`. Pour les flux `https://`, se référer aux options de contexte du transport `ssl://`.

> Note: Ligne de statut HTTP
> Lorsque ce gestionnaire de flux suit une redirection, `wrapper_data`, retourné par la fonction stream_get_meta_data() ne doit pas contenir obligatoirement la ligne de statut HTTP qui s'applique à des données de contenu à l'index `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',
>         ...

> La première requête retourne une `301` (redirection permanente), ainsi, le gestionnaire de flux suit automatiquement la redirection pour récupérer une réponse `200` (index = `4`).

### Voir aussi

- http://
- Options de contexte des sockets
- Options de contexte SSL

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