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!