Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich Cookies aus einer PHP-Curl-Antwort in eine Variable extrahieren?

Wie kann ich Cookies aus einer PHP-Curl-Antwort in eine Variable extrahieren?

Barbara Streisand
Barbara StreisandOriginal
2024-12-22 15:12:11763Durchsuche

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

Cookies aus der PHP-Curl-Antwort in eine Variable abrufen

In bestimmten Szenarien können externe API-Antworten aus unerklärlichen Gründen als Cookies in den HTTP-Header eingebettet werden , anstatt herkömmliche Kommunikationsprotokolle wie SOAP oder REST zu verwenden. Um das Extrahieren dieser Cookies in ein strukturiertes Array zu erleichtern, ohne auf mühsames Parsen zurückgreifen zu müssen, kann die folgende Technik eingesetzt werden.

Mithilfe der PHP-Curl-Erweiterung können Sie die HTTP-Antwort, einschließlich der Cookies, wie folgt abrufen 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);

Um die Cookies aus der Antwort zu extrahieren, können reguläre Ausdrücke verwendet werden:

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

Das $matches-Array enthält alle in der Antwort gefundenen Cookies. Um dies in ein nützlicheres Format umzuwandeln, kann jeder Cookie-String mit parse_str in ein Array geparst werden:

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

Schließlich können Sie auf die Cookies im $cookies-Array zugreifen. Dieser Ansatz extrahiert effektiv Cookies aus der Curl-Antwort, ohne dass komplexe Parsing- oder dateibasierte Vorgänge erforderlich sind.

Das obige ist der detaillierte Inhalt vonWie kann ich Cookies aus einer PHP-Curl-Antwort in eine Variable extrahieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn