PHP读取CURL模拟登录时生成Cookie文件的方法


Posted in PHP onNovember 04, 2014

本文实例讲述了PHP读取CURL模拟登录时生成Cookie文件的方法。分享给大家供大家参考。具体实现方法如下:

在使用PHP中的CURL模拟登录时会保存一个Cookie文件,例如下面的代码

$login_url = 'XXX';  

  

$post_fields['email'] = 'XXXX';  

$post_fields['password'] = 'XXXX';  

$post_fields['origURL'] = 'XXX';  

$post_fields['domain'] = 'xxx.com';  

//cookie文件存放在网站根目录的temp文件夹下  

$cookie_file = tempnam('./temp','cookie');  

  

$ch = curl_init($login_url);  

curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5');  

curl_setopt($ch, CURLOPT_HEADER, 0);  

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  

curl_setopt($ch, CURLOPT_MAXREDIRS, 1);  

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);  

curl_setopt($ch, CURLOPT_AUTOREFERER, 1);  

curl_setopt($ch, CURLOPT_POST, 1);  

curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);  

curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);  

curl_exec($ch);  

curl_close($ch);  

  

//带上cookie文件,访问需要访问的页面  

$send_url='xxx.com';  

$ch = curl_init($send_url);  

curl_setopt($ch, CURLOPT_HEADER, 0);  

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  

curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);  

$contents = curl_exec($ch);  

curl_close($ch);  

  

//清理cookie文件  

unlink($cookie_file);  

  

//输出网页内容  

print_r($contents);

在temp文件夹下保存一个cookie前缀的临时文件,例如:coo3A98.tmp文件
打开这个文件得到如下代码:

PHP读取CURL模拟登录时生成Cookie文件的方法

要使用php来格式化该文件,使用以下代码就能实现

<?php   

$cookie_folder = dirname(__FILE__)."/temp";  

$lines = file($cookie_folder.'/coo3A98.tmp');  

  

$trows = '';  

  

foreach($lines as $line) {  

    if($line[0] != '#' && substr_count($line, "\t") == 6) {  

        $tokens = explode("\t", $line);  

        $tokens = array_map('trim', $tokens);  

        $tokens[4] = date('Y-m-d h:i:s', $tokens[4]);  

        $trows .= '<tr><td>' . implode('</td><td>', $tokens) . '</td></tr>' . PHP_EOL;  

    }  

}  

echo '<table>'.PHP_EOL.'<tbody>'.PHP_EOL.$trows.'</tbody>'.PHP_EOL.'</table>';  

?>

运行之后就如下图所示,已经被写入到table当中

PHP读取CURL模拟登录时生成Cookie文件的方法

大功告成,如果只读取其中字段可自行修改即可。

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

PHP 相关文章推荐
PHP 变量类型的强制转换
Oct 23 PHP
PHP大批量数据操作时临时调整内存与执行时间的方法
Apr 20 PHP
支持中文的php加密解密类代码
Nov 27 PHP
PHP中使用foreach和引用导致程序BUG的问题介绍
Sep 05 PHP
php中simplexml_load_string使用实例分享
Feb 13 PHP
CodeIgniter安全相关设置汇总
Jul 03 PHP
CodeIgniter模板引擎使用实例
Jul 15 PHP
PHP简单读取xml文件的方法示例
Apr 20 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
Oct 12 PHP
laravel5.5添加echarts实现画图功能的方法
Oct 09 PHP
php生成HTML文件的类方法
Oct 11 PHP
浅谈laravel数据库查询返回的数据形式
Oct 21 PHP
PHP自动重命名文件实现方法
Nov 04 #PHP
php以post形式发送xml的方法
Nov 04 #PHP
PHP中Header使用的HTTP协议及常用方法小结
Nov 04 #PHP
phpmyadmin中禁止外网使用的方法
Nov 04 #PHP
PHP中ini_set与ini_get用法实例
Nov 04 #PHP
PHP实现模仿socket请求返回页面的方法
Nov 04 #PHP
php验证session无效的解决方法
Nov 04 #PHP
You might like
多个iframe自动调整大小的问题
2006/09/18 Javascript
javascript 异常处理使用总结
2009/06/21 Javascript
JavaScript面向对象之Prototypes和继承
2012/07/12 Javascript
javascript不同类型数据之间的运算的转换方法
2014/02/13 Javascript
Javascript让DEDECMS告别手写Tag
2014/09/01 Javascript
基于JavaScript实现鼠标向下滑动加载div的代码
2016/08/31 Javascript
ReactJs快速入门教程(精华版)
2016/11/28 Javascript
详解nodejs微信公众号开发——4.自动回复各种消息
2017/04/11 NodeJs
Vue.js实现微信过渡动画左右切换效果
2017/06/13 Javascript
详解vue数据渲染出现闪烁问题
2017/06/29 Javascript
nodejs 图解express+supervisor+ejs的用法(推荐)
2017/09/08 NodeJs
使用 Node.js 开发资讯爬虫流程
2018/01/07 Javascript
说说node中的可读流和可写流的区别
2018/06/01 Javascript
Vue项目添加动态浏览器头部title的方法
2018/07/11 Javascript
JS中的模糊查询功能
2019/12/08 Javascript
[09:31]2016国际邀请赛中国区预选赛Yao赛后采访 答题送礼
2016/06/27 DOTA
[01:02:54]完美世界DOTA2联赛PWL S2 FTD vs GXR 第一场 11.22
2020/11/26 DOTA
深入理解Python中字典的键的使用
2015/08/19 Python
python文件的md5加密方法
2016/04/06 Python
解决python tkinter界面卡死的问题
2019/07/17 Python
python创建属于自己的单词词库 便于背单词
2019/07/30 Python
如何用Python来搭建一个简单的推荐系统
2019/08/07 Python
详解python实现可视化的MD5、sha256哈希加密小工具
2020/09/14 Python
python 读取、写入txt文件的示例
2020/09/27 Python
python多线程爬取西刺代理的示例代码
2021/01/30 Python
编写类String 的构造函数、析构函数和赋值函数
2012/09/09 面试题
行政专员岗位职责
2014/01/02 职场文书
餐厅执行经理岗位职责范本
2014/02/26 职场文书
怎么写好自荐书
2014/03/02 职场文书
研究生导师推荐信
2014/09/06 职场文书
单位法人授权委托书范本
2014/10/09 职场文书
党员群众路线个人整改措施思想汇报
2014/10/12 职场文书
店长岗位职责
2015/02/11 职场文书
《詹天佑》教学反思
2016/02/20 职场文书
Go timer如何调度
2021/06/09 Golang
springboot 多数据源配置不生效遇到的坑及解决
2021/11/17 Java/Android