將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中文網其他相關文章!