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学习 运算符与运算符优先级
Jun 15 PHP
基于Windows下Apache PHP5.3.1安装教程
Jan 08 PHP
php将会员数据导入到ucenter的代码
Jul 18 PHP
php数组函数序列 之array_count_values() 统计数组中所有值出现的次数函数
Oct 29 PHP
destoon实现调用图文新闻的方法
Aug 21 PHP
PHP上传文件时自动分配路径的方法
Jan 09 PHP
PHP实现上传文件并存进数据库的方法
Jul 16 PHP
CodeIgniter表单验证方法实例详解
Mar 03 PHP
php 静态属性和静态方法区别详解
Apr 09 PHP
PHP实现的链式队列结构示例
Sep 15 PHP
基于Laravel实现的用户动态模块开发
Sep 21 PHP
小程序微信支付功能配置方法示例详解【基于thinkPHP】
May 05 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
php 格式化数字的时候注意数字的范围
2010/04/13 PHP
Zend studio文件注释模板设置方法
2013/09/29 PHP
php合并数组中相同元素的方法
2014/11/13 PHP
PHP图像处理类库及演示分享
2015/05/17 PHP
PHP实现二维数组按某列进行排序的方法
2016/11/18 PHP
改进版通过Json对象实现深复制的方法
2012/10/24 Javascript
JavaScript实现当网页加载完成后执行指定函数的方法
2015/03/21 Javascript
JavaScript原型继承_动力节点Java学院整理
2017/06/30 Javascript
微信小程序实现顶部普通选项卡效果(非swiper)
2020/06/19 Javascript
如何在vue里添加好看的lottie动画
2018/08/02 Javascript
Vue的生命周期操作示例
2019/09/17 Javascript
python检测lvs real server状态
2014/01/22 Python
python3写爬取B站视频弹幕功能
2017/12/22 Python
python使用筛选法计算小于给定数字的所有素数
2018/03/19 Python
使用Python和xlwt向Excel文件中写入中文的实例
2018/04/21 Python
python pygame实现2048游戏
2018/11/20 Python
Django 路由控制的实现
2019/07/17 Python
详解django实现自定义manage命令的扩展
2019/08/13 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
2020/03/19 Python
Docker如何部署Python项目的实现详解
2020/10/26 Python
HTML5 input placeholder 颜色修改示例
2014/05/30 HTML / CSS
Aveda美国官网:天然护发产品、洗发水、护发素和沙龙
2016/12/09 全球购物
我们是伦敦女孩:WalG
2018/01/08 全球购物
.NET里面什么时候需要调用垃圾回收
2015/06/01 面试题
车间主管岗位职责
2013/11/14 职场文书
大三学生做职业规划:给未来找个方向
2014/02/24 职场文书
师德先进个人材料
2014/12/20 职场文书
检讨书格式
2015/01/23 职场文书
家长对学校的意见和建议
2015/06/03 职场文书
教育教学读书笔记
2015/07/02 职场文书
素质教育培训心得体会
2016/01/19 职场文书
煤矿安全生产管理协议书
2016/03/22 职场文书
mysql中between的边界,范围说明
2021/06/08 MySQL
使用redis生成唯一编号及原理示例详解
2021/09/15 Redis
Python正则表达式中flags参数的实例详解
2022/04/01 Python
Python可变与不可变数据和深拷贝与浅拷贝
2022/04/06 Python