首頁 >後端開發 >php教程 >如何將 PHP Curl 回應中的 Cookie 提取到變數中?

如何將 PHP Curl 回應中的 Cookie 提取到變數中?

Barbara Streisand
Barbara Streisand原創
2024-12-22 15:12:11815瀏覽

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

將PHP Curl 回應中的Cookie 檢索到變數中

在某些情況下,外部API 回應可能會莫名其妙地作為Cookie嵌入HTTP 標頭中,而不是使用SOAP 或REST 等傳統通訊協定。為了方便將這些 cookie 提取到結構化數組中,而不需要進行費力的解析,可以使用以下技術。

利用PHP Curl 擴展,您可以使用以下命令檢索HTTP 回應,包括cookie代碼:

$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);

要從回應中提取cookie,可以使用正規表示式:

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

$matches 陣列將包含回應中找到的所有cookie。要將其轉換為更有用的格式,可以使用 parse_str 將每個 cookie 字串解析為陣列:

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

最後,您可以存取 $cookies 陣列中的 cookie。這種方法可以有效地從curl回應中提取cookie,而不需要複雜的解析或基於檔案的操作。

以上是如何將 PHP Curl 回應中的 Cookie 提取到變數中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn