已掉线,重新登录

首页 > 绿虎论坛 > 历史版块 > 编程 > PHP > 讨论/求助

标题: CURL不依赖COOKIEJAR获取COOKIE

作者: @Ta

时间: 2013-10-04

点击: 2451

PHP中CURL类是一个非常强悍的工具类,对于COOKIE,CURL类也有很不错的支持,但不够灵活,并未能通过现成的方法以变量的方法获取到,而需要通过以下方法实现。
// 把COOKIE保存至cookie.txt 
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); 
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); 
先把COOKIE保存文件,调用的时候还得读取文件,这样意味着两次的IO操作,效率如何,不用说大家都清楚了。
那么有没有办法可以绕过写读文件呢?直接上代码:
// 初始化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); 
// 后面用CURL提交的时候可以直接使用 
// curl_setopt($ch, CURLOPT_COOKIE, $cookie); 
$cookie = $matches[1];
以上代码中// 关闭CURL 
curl_close($ch);有错误,什么原因?

[隐藏样式|查看源码]


『回复列表(5|隐藏机器人聊天)』

1. 不懂php的撸过。
(/@Ta/2013-10-04 21:24//)

2. 好东西  收藏了
(/@Ta/2013-10-04 21:55//)

3. @剑走偏锋,错误提示?
(/@Ta/2013-10-04 22:46//)

4. @胜永 以上代码中// 关闭CURL 
curl_close($ch);有错误
你把代码中的这句curl_close($ch);去掉就不会错误了
(/@Ta/2013-10-04 22:50//)

5. @剑走偏锋,你怎么能执行两次curl_close();呢
(/@Ta/2013-10-05 07:17//)

回复需要登录

7月29日 06:34 星期二

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1