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é.
-
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(
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 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
).