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` chaîne de caractères

  `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:).

`user_agent` chaîne de caractères

  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` chaîne de caractères

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

`proxy` chaîne de caractères

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

`request_fulluri` booléen

  Lorsque défini à `TRUE`, l'URI entière sera utilisée lors de la construction de la requête. (i.e. 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` integer

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

  Par défaut, vaut 1.

`max_redirects` integer

  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` nombre décimal

  Version du protocole HTTP.

  Par défaut, vaut 1.0.

  > Note:

  > Dans les versions antérieures à 5.3.0, PHP n'implémente pas le décodage du transfert. Aussi, si la valeur est définie à 1.1, il est de votre responsabilité d'être conforme à 1.1.

`timeout` nombre décimal

  Délai maximal d'attente pour la lecture, 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éen

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

  Par défaut, vaut `FALSE`.

### Historique

Version | Description
--- | ---
5.3.4 | Ajout du paramètre `follow_location`.
5.3.0 | Le paramètre `protocol_version` supporte les transferts chunked lorsqu'on lui assigne la valeur 1.1.
5.2.10 | Ajout du paramètre `ignore_errors`.
5.2.10 | Le paramètre `header` peut désormais être un tableau indexé numériquement.
5.2.1 | Ajout du paramètre `timeout`.
5.1.0 | Ajout de la possibilité d'utiliser des proxy HTTPS.
5.1.0 | Ajout du paramètre `max_redirects`.
5.1.0 | Ajout du paramètre `protocol_version`.

### Exemples

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

`<?php
$postdata = http_build_query(
array(
'var1' => 'du contenu',
'var2' => 'doh'
)
);
$opts = array('http' =>
array(
'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 = array('http' =>
array(
'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://, référez-vous aux options de contexte du transport tcp://. Pour les flux https://, référez-vous 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 Permantenly',
>         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