Envoi de plusieurs cookies avec file_get_contents
Le manuel PHP fournit un exemple montrant comment envoyer un cookie à l'aide de contextes de flux. Cependant, il ne traite pas le scénario d'envoi de plusieurs cookies.
Options de cookies multiples
Il existe plusieurs options pour envoyer plusieurs cookies :
"Cookie: user=3345&pass=abcd\r\n"
Cette option combine les cookies en un seul chaîne, séparée par une esperluette (&). Cependant, il peut ne pas être compatible avec tous les serveurs.
"Cookie: user=3345\r\n" .
"Cookie: pass=abcd\r\n"
Cette option envoie les cookies sous forme de lignes distinctes avec des en-têtes de cookies individuels. Il offre une meilleure compatibilité mais peut paraître compliqué.
Solution optimale
L'option préférée pour l'envoi de plusieurs cookies est :
Cookie: user=3345; pass=abcd
Cette syntaxe utilise des points-virgules (;) pour séparer les paires de cookies. Il est largement pris en charge et suit la spécification des cookies HTTP.
Mise en œuvre
Pour envoyer plusieurs cookies à l'aide de file_get_contents :
$cookies = array('user' => '3345', 'pass' => 'abcd');
$cookieString = '';
foreach ($cookies as $name => $value) {
$cookieString .= "$name=$value;";
}
$opts = array(
'http' => array(
'method' => 'GET',
'header' => "Accept-language: en\r\n" .
"Cookie: $cookieString\r\n"
)
);
$context = stream_context_create($opts);
$file = file_get_contents('http://www.example.com/', false, $context);
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3