php使用CURL不依赖COOKIEJAR获取COOKIE的方法

 更新时间:2015年06月17日 09:55:54   作者:RobinTang  
这篇文章主要介绍了php使用CURL不依赖COOKIEJAR获取COOKIE的方法,实例分析了curl操作cookie的技巧,需要的朋友可以参考下

本文实例讲述了php使用CURL不依赖COOKIEJAR获取COOKIE的方法。分享给大家供大家参考。具体分析如下:

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]; 

希望本文所述对大家的php程序设计有所帮助。

相关文章

  • 用php实现的下载css文件中的图片的代码

    用php实现的下载css文件中的图片的代码

    非常有创意的利用php获取css中图片地址并实现下载的代码。
    2010-02-02
  • fetchAll()与mysql_fetch_array()的区别详解

    fetchAll()与mysql_fetch_array()的区别详解

    本篇文章是对fetchAll()与mysql_fetch_array()的区别进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • php使用include 和require引入文件的区别

    php使用include 和require引入文件的区别

    require()语句的性能与include()相类似,都是包括并运行指定文件。不同之处在于:对include()语句来说,在执行文件时每次都要进行读取和评估;而对于require()来说,文件只处理一次(实际上,文件内容替换require()语句)。
    2017-02-02
  • PHP实现简单数字分页效果

    PHP实现简单数字分页效果

    我们平时在开发中,经常需要用到分页,在项目中要用到分页。分页功能是经常使用的一个功能,下面我们就来简单分享个数字的分页效果
    2015-07-07
  • 一文带你搞懂PHP对象注入

    一文带你搞懂PHP对象注入

    php对象注入是一个非常常见的漏洞,这个类型的漏洞虽然有些难以利用,但仍旧非常危险。本文将通过示例带大家搞懂PHP对象注入,感兴趣的可以了解一下
    2022-09-09
  • phpstrom使用xdebug配置方法

    phpstrom使用xdebug配置方法

    这篇文章主要介绍了phpstrom使用xdebug的配置方法,大家参考使用吧
    2013-12-12
  • 迁移PHP版本到PHP7

    迁移PHP版本到PHP7

    这篇文章主要介绍了迁移PHP版本到PHP7的方法,需要的朋友可以参考下
    2015-02-02
  • PHP COOKIE设置为浏览器进程

    PHP COOKIE设置为浏览器进程

    首先,设置浏览器进程的“Cookie 过期的时间”这个值并不是当前Unix时间戳+0,如果设置为浏览器进程的话,直接将过期时间设置为0即可。
    2009-06-06
  • 详解PHP中mb_strpos的使用

    详解PHP中mb_strpos的使用

    这篇文章主要介绍了详解PHP中mb_strpos的使用,通过使用语法以及实例给大家详细分析了用法,需要的朋友参考学习下。
    2018-02-02
  • php cURL和Rolling cURL并发方式比较

    php cURL和Rolling cURL并发方式比较

    在实际项目或者自己编写小工具(比如新闻聚合,商品价格监控,比价)的过程中, 通常需要从第3方网站或者API接口获取数据, 在需要处理1个URL队列时, 为了提高性能, 可以采用cURL提供的curl_multi_*族函数实现简单的并发。
    2013-10-10

最新评论