"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment envoyer plusieurs cookies avec file_get_contents en PHP ?

Comment envoyer plusieurs cookies avec file_get_contents en PHP ?

Publié le 2024-10-31
Parcourir:937

How to Send Multiple Cookies with file_get_contents in PHP?

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 :

  • Option 1 :
"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.

  • Option 2 :
"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 :

  • Option 3 :
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);
Déclaration de sortie Cet article est réimprimé à l'adresse : 1729212137. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

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