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高级对象构建 工厂模式的使用
Feb 05 PHP
迅速确定php多维数组的深度的方法
Jan 07 PHP
PHP开发框架kohana中处理ajax请求的例子
Jul 14 PHP
Yii2中使用asset压缩js,css文件的方法
Nov 24 PHP
利用php-cli和任务计划实现订单同步功能的方法
May 03 PHP
PHP 实现公历日期与农历日期的互转换
Sep 13 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
Apr 11 PHP
PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法
Apr 16 PHP
php实现的表单验证类完整示例
Aug 13 PHP
PHP手机号码及邮箱正则表达式实例解析
Jul 11 PHP
PHP数组访问常用方法解析
Sep 05 PHP
PhpStorm连接服务器并实现自动上传功能
Dec 09 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
DC漫画《蝙蝠侠和猫女》图透 猫女怀孕老爷当爹
2020/04/09 欧美动漫
php入门学习知识点八 PHP中for循环基本应用之九九乘法口绝表
2011/07/14 PHP
10个对初学者非常有用的PHP技巧
2016/04/06 PHP
Yii2中设置与获取别名的函数(setAlias和getAlias)用法分析
2016/07/25 PHP
php静态成员方法和静态的成员属性的使用方法
2017/10/26 PHP
图片完美缩放
2006/09/07 Javascript
js 动态选中下拉框
2009/11/26 Javascript
jQuery EasyUI API 中文文档 - Calendar日历使用
2011/10/19 Javascript
如何使用Javascript获取距今n天前的日期
2013/07/08 Javascript
Nodejs极简入门教程(三):进程
2014/10/27 NodeJs
javascript中offset、client、scroll的属性总结
2015/08/13 Javascript
浅析JS操作DOM的一些常用方法
2016/05/13 Javascript
nodejs(officegen)+vue(axios)在客户端导出word文档的方法
2018/07/31 NodeJs
浅谈vue同一页面中拥有两个表单时,的验证问题
2018/09/18 Javascript
小程序云开发实现数据库异步操作同步化
2019/05/18 Javascript
vue+elementUI实现表格关键字筛选高亮
2020/10/26 Javascript
基于JavaScript实现单例模式
2019/10/30 Javascript
[40:12]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python标准库os.path包、glob包使用实例
2014/11/25 Python
详解Python list和numpy array的存储和读取方法
2019/11/06 Python
python目标检测给图画框,bbox画到图上并保存案例
2020/03/10 Python
Jupyter notebook 启动闪退问题的解决
2020/04/13 Python
Django --Xadmin 判断登录者身份实例
2020/07/03 Python
Python爬取豆瓣数据实现过程解析
2020/10/27 Python
详解CSS中iconfont的使用
2015/08/04 HTML / CSS
New Balance英国官方网站:始于1906年,百年慢跑品牌
2016/12/07 全球购物
英国手机壳购买网站:Case Hut
2019/04/11 全球购物
C#面试问题
2016/07/29 面试题
几个判断型的面试题
2012/07/03 面试题
如何写求职信
2014/05/24 职场文书
2015元旦主持词开场白和结束语
2014/12/14 职场文书
2015年世界粮食日演讲稿
2015/03/20 职场文书
行政复议决定书
2015/06/24 职场文书
同事离别感言
2015/08/04 职场文书
创业计划书之服装
2019/10/07 职场文书
MySQL表锁、行锁、排它锁及共享锁的使用详解
2022/04/02 MySQL