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
  
   
    
     - 
      methodchaî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:,
       etAuthentication:),
       même en suivant les redirectionsLocation:.
       Ainsi il n'est pas recommandé de définir l'en-têteHost:, sifollow_locationest activé.
 
       Une chaîne de caractères doit contenir des paires Clé : valeurdélimitées par\r\n, par exemple :"Content-Type: application/json\r\nConnection: close".
       Un tableau doit contenir une liste de pairesClé : valeur, par exemple :["Content-Type: application/json", "Connection: close"].
 
- 
      user_agentchaî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 contexteheaderci-dessus.
 
       Par défaut, la valeur de l'option de configuration
       user_agent du fichier
       php.ini sera utilisée.
       
- 
      contentchaî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.
       
- 
      proxychaîne de caractères
- 
      
       URI de l'adresse du proxy (e.g.
       tcp://proxy.example.com:5100).
 
- 
      request_fulluriboolé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_locationint
- 
      
       Suit les redirections Location.
       À définir à0pour désactiver.
 
       Par défaut, vaut 1.
 
- 
      max_redirectsint
- 
      
       Le nombre maximal de redirections à suivre. La valeur 1ou inférieure signifie qu'aucune redirection ne sera suivie.
 
       Par défaut, vaut 20.
 
- 
      protocol_versionnombre 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 était1.0.
 
- 
      timeoutnombre 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_errorsboolé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).