"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 puis-je extraire des cookies d'une réponse en curl PHP dans une variable?

Comment puis-je extraire des cookies d'une réponse en curl PHP dans une variable?

Publié le 2025-02-07
Parcourir:326

How Can I Extract Cookies from a PHP Curl Response into a Variable?

Récupération des cookies de la réponse php curl en une variable

Dans certains scénarios, les réponses API externes peuvent être inexplicablement incorporées en tant que cookies dans l'en-tête HTTP , au lieu d'utiliser des protocoles de communication conventionnels comme le savon ou le repos. Pour faciliter l'extraction de ces cookies en un tableau structuré sans recourir à l'analyse laborieuse, la technique suivante peut être utilisée.

En utilisant l'extension de la boucle PHP, vous pouvez récupérer la réponse HTTP, y compris les cookies, en utilisant les suivants Code:

$ch = curl_init('http://www.google.com/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// Retrieve headers too
curl_setopt($ch, CURLOPT_HEADER, 1);
$result = curl_exec($ch);

Pour extraire les cookies de la réponse, les expressions régulières peuvent être utilisées:

// Extract cookies using regular expressions
preg_match_all('/^Set-Cookie:\s*([^;]*)/mi', $result, $matches);

Le tableau $ correspond contiendra tous les cookies trouvés dans la réponse. Pour convertir cela en un format plus utile, chaque chaîne de cookie peut être analysée en un tableau à l'aide de parse_str:

$cookies = array();
foreach($matches[1] as $item) {
    parse_str($item, $cookie);
    $cookies = array_merge($cookies, $cookie);
}

Enfin, vous pouvez accéder aux cookies dans le tableau $ cookies. Cette approche extrait efficacement les cookies de la réponse Curl sans avoir besoin d'analyses complexes ou d'opérations basées sur des fichiers.

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