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.
-
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
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 (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
nombre décimal
-
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
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.
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://, 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 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).