当前位置: 首页 > 编程笔记 >

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

鲜于勇
2023-03-14
本文向大家介绍php使用CURL不依赖COOKIEJAR获取COOKIE的方法,包括了php使用CURL不依赖COOKIEJAR获取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程序设计有所帮助。

 类似资料:
  • 问题内容: 因此,其他公司的一些人认为,如果不使用soap或xml- rpc或rest或任何其他合理的通信协议,而只是将所有响应作为cookie嵌入到标头中,那将是很棒的。 我需要将这些cookie作为此curl响应中的一个数组拉出。如果我不得不花大量时间为此编写解析器,我将非常不高兴。 有谁知道如何简单地做到这一点,最好不要在文件中写入任何内容? 如果有人可以帮助我,我将不胜感激。 问题答案:

  • 问题内容: 我对PHP Curl和cookie身份验证有一些问题。 我有一个 Connector.php 文件,该文件对另一台服务器上的用户进行身份验证并返回当前用户的cookie。 问题是我想用curl认证成千上万的用户,但是一次只能认证一个用户并保存COOKIES。 Connector.php的代码是这样的: 这是认证过程: 用户输入用户名和密码: 根据先前使用登录服务保存的cookie返回有

  • 问题内容: 我正在使用新的Python Requests库发出http请求。我从服务器获取cookie作为文本。如何将其中的cookie变成一个? 问题答案: 这个问题让我感到困惑。请求库将为您将Cookie放入罐子中。 URL的第一个请求将填充该jar。第二个请求会将cookie发送回服务器。标准库的urllib模块cookielib也是如此。(当前可用于2.x版本的文档)

  • 问题内容: 我正在使用CURL来获取网站的状态(如果它处于启动状态/关闭状态或重定向到另一个网站)。我想使其尽可能地精简,但是效果不佳。 我把它包装在一个函数中。它工作正常,但性能并不是最好的,因为它会下载整个页面,如果我删除它,它会一直返回。 有谁知道如何提高性能? 问题答案: 首先确保URL实际上是有效的(字符串,不是空,语法不错),这可以快速检查服务器端。例如,首先执行此操作可以节省大量时间

  • 问题内容: 如何不使用来获取html源代码? 我需要知道这一点,因为在某些虚拟主机上已禁用,因此您不能使用。是否可以使用cURL获取html文件的源(如果启用了cURL支持)?如果是这样,怎么办?谢谢。 问题答案: 请尝试以下操作: 我只推荐小文件使用。大文件将作为一个整体读取,并且可能会产生内存错误。 编辑:在评论中进行了一些讨论之后,我们发现问题是服务器无法解析主机名,并且该页面另外是http

  • 本文向大家介绍PHP读取CURL模拟登录时生成Cookie文件的方法,包括了PHP读取CURL模拟登录时生成Cookie文件的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP读取CURL模拟登录时生成Cookie文件的方法。分享给大家供大家参考。具体实现方法如下: 在使用PHP中的CURL模拟登录时会保存一个Cookie文件,例如下面的代码 在temp文件夹下保存一个cookie