php curl同时获取内容和响应cookie
时间: 2024-09-28 16:07:42 浏览: 46
在PHP中,使用cURL库可以方便地发送HTTP请求并获取响应内容。如果你想同时获取网页内容和响应头中的Cookie信息,你可以这样做:
```php
// 初始化cURL会话
$ch = curl_init();
// 设置cURL选项
curl_setopt($ch, CURLOPT_URL, "http://example.com"); // 替换为你需要抓取的网址
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 获取网页内容而不是直接输出
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // 跟随重定向
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies.txt'); // 存储Cookies到文件
curl_setopt($ch, CURLOPT_HEADER, true); // 同时获取响应头信息
// 发送请求并保存Cookie
$response = curl_exec($ch);
// 检查请求是否成功
if(curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
} else {
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$headers = substr($response, 0, $header_size); // 响应头
$content = substr($response, $header_size); // 响应内容
// 分析Cookie
preg_match_all('/Set-Cookie:\s*(.*)\r\n/', $headers, $matches);
$cookies = array_map('trim', explode(";", trim($matches[1][0])));
// 关闭cURL会话
curl_close($ch);
// 输出结果或进一步处理
var_dump($cookies, $content);
}
阅读全文