将 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中文网其他相关文章!