php在使用curl处理COOKIE是通常都需要创建保存的文件 (cookie.txt)
然后依赖依赖一下两个方法:
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); //curl返回时,写入cookie curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); //curl请求时,读取cookie
如何能不依赖文件存储解决cookie呢???
思路:
1.如何用变量存储cookie .(cookie变量既可以直接使用,有可以存储到数据库中)
2.请求时直接使用cookie变量.
直接上代码:
// 初始化CURL $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); // 获取头部信息 curl_setopt($ch, CURLOPT_HEADER, 1); // 返回原生的(Raw)输出 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 执行并获取返回结果 $content = curl_exec($ch); // 关闭CURL curl_close($ch); // 解析HTTP数据流 list($header, $body) = explode("\r\n\r\n", $content); // 解析COOKIE preg_match("/set\-cookie:([^\r\n]*)/i", $header, $matches); $cookie = $matches[1]; // 后面用CURL提交的时候可以直接使用 // curl_setopt($ch, CURLOPT_COOKIE, $cookie);
重点:
1.利用 curl_setopt($ch, CURLOPT_HEADER, 1); 显示cookie
2.利用正在表达式取出 cookie
3.利用curl_setopt($ch, CURLOPT_COOKIE, $cookie); 发送cookie