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程序设计有所帮助。

转: https://blog.csdn.net/dbg8685/article/details/53289149

参考: http://www.zjmainstay.cn/php-curl

原文地址:https://www.cnblogs.com/fps2tao/p/10011330.html

时间: 2024-10-03 21:54:34

php使用CURL不依赖COOKIEJAR获取COOKIE的方法的相关文章

javascript设置和获取cookie的方法

设置cookie的方法,和获取cookie的方法如下 设置cookie document.cookie="name="+value; //获取cookie其中index是cookie的名称 function getCookie(index){ var allcookies = document.cookie; var cookie_pos = allcookies.indexOf(index); if (cookie_pos != -1){ cookie_pos += index.le

php爬虫(curl) 模拟登陆获取cookie,然后使用cookie查看个人中心

<!-- curl的高级使用 --> <?php //模拟登陆获取cookie保存到电脑 header("content-Type: text/html; charset=UTF-8"); /*$cookie_file = tempnam('d:/', 'cookie');*/ $cookie_file = 'd:/demo.txt'; $login_url="http://www.php-z.com/member.php?mod=logging&a

Js设置及获取Cookie的方法

Login页面设置Cookie: if(json.result=="true") { if($("input[type='checkbox']").is(':checked')) {setCookie('sapid',json.zstaff_id,30)} else {setCookie('sapid',json.zstaff_id,0.05)/*1小时后过期*/} alert("登陆成功"); /*登陆成功后定向到主页*/ window.loc

js 根据名字获取cookie 的方法

function getcookie(c_name) { if (document.cookie.length > 0) { c_start = document.cookie.indexOf(c_name + "=");//这里因为传进来的的参数就是带引号的字符串,所以c_name可以不用加引号 if (c_start != -1) { c_start = c_start + c_name.length + 1; c_end = document.cookie.indexOf(

fiddlercore 抓包获取cookie的方法

public partial class form1 : Form { public form1() { string cookies = ""; InitializeComponent(); #region AttachEventListeners Fiddler.FiddlerApplication.OnNotification += delegate (object sender, NotificationEventArgs oNEA) { Console.WriteLine(&

jQuery获取cookie

之前一直以为获取cookie的方法封装在了jQuery包中...没想到还得单独下jquery.cookie.js插件,不太好找,备份一份: /*! * jQuery Cookie Plugin v1.4.1 * https://github.com/carhartl/jquery-cookie * * Copyright 2013 Klaus Hartl * Released under the MIT license */ (function (factory) { if (typeof de

转 通过js获取cookie的实例及简单分析

今天review新人写的javascript代码的时候发现了很多的问题.这里以function getCookie(name){}为例. 其中比较典型的一个问题就是如何通过javascript获取cookie里面的一个值. 那么我们先来看看cookie到底长什么样子呢?直接在浏览器地址栏输入: javascript:alert(document.cookie); 回车.(这行代码的意思是,让浏览器执行javascript语句: alert(document.cookie);)结果是:uin=we

php 从Header中获取cookie

/*-----保存COOKIE-----*/ $url = 'www.xxx.com'; //url地址 $post = "id=user&pwd=123456"; //POST数据 $ch = curl_init($url); //初始化 curl_setopt($ch,CURLOPT_HEADER,1); //将头文件的信息作为数据流输出 curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); //返回获取的输出文本流 curl_setopt(

爬虫学习----获取cookie

http://blog.csdn.net/samxx8/article/details/21535901 1.获取cookie import urllib import http.cookiejarcookie = http.cookiejar.CookieJar()opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cookie))response = opener.open('http://www.w