Options de contexte HTTP
Options de contexte HTTP — Liste des options de contexte HTTP
Description
Options de contexte pour les protocoles http:// et https://.
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.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).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', ...