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 什么是PEAR?(第三篇)
Mar 19 PHP
PHPLog php 程序调试追踪工具
Sep 09 PHP
全世界最小的php网页木马一枚 附PHP木马的防范方法
Oct 09 PHP
DedeCMS 核心类TypeLink.class.php摘要笔记
Apr 07 PHP
PHP register_shutdown_function函数的深入解析
Jun 03 PHP
单点登录 Ucenter示例分析
Oct 29 PHP
thinkphp数据查询和遍历数组实例
Nov 28 PHP
php实现面包屑导航例子分享
Dec 19 PHP
PHP实现原生态图片上传封装类方法
Nov 08 PHP
PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
Feb 07 PHP
PHP巧妙利用位运算实现网站权限管理的方法
Mar 12 PHP
PHP 代码简洁之道(小结)
Oct 16 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实现的递归提成方案实例
2015/11/14 PHP
使用Composer安装Yii框架的方法
2016/03/15 PHP
PHP编程中尝试程序并发的几种方式总结
2016/03/21 PHP
对比PHP对MySQL的缓冲查询和无缓冲查询
2016/07/01 PHP
PHP数据对象映射模式实例分析
2019/03/29 PHP
JavaScript中的property和attribute介绍
2011/12/26 Javascript
jquery1.83 之前所有与异步列队相关的模块详细介绍
2012/11/13 Javascript
jQuery 网易相册鼠标移动显示隐藏效果实现代码
2013/03/31 Javascript
JavaScript返回当前会话cookie全部键值对照的方法
2015/04/03 Javascript
基于JS实现的倒计时程序实例
2015/07/24 Javascript
jquery  实现轮播图详解及实例代码
2016/10/12 Javascript
node.js Sequelize实现单实例字段或批量自增、自减
2016/12/08 Javascript
基于JavaScript 性能优化技巧心得(分享)
2017/12/11 Javascript
webpack项目调试以及独立打包配置文件的方法
2018/02/28 Javascript
node 使用 async 控制并发的方法
2018/05/07 Javascript
Vue多系统切换实现方案
2018/06/05 Javascript
Vue 莹石摄像头直播视频实例代码
2018/08/31 Javascript
Webpack之tree-starking 解析
2018/09/11 Javascript
Webpack设置环境变量的一些误区详解
2019/12/19 Javascript
Vue作用域插槽实现方法及作用详解
2020/07/08 Javascript
解决vue中使用less/sass及使用中遇到无效的问题
2020/10/24 Javascript
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
Ruby使用eventmachine为HTTP服务器添加文件下载功能
2016/04/20 Python
用PyInstaller把Python代码打包成单个独立的exe可执行文件
2018/05/26 Python
Python实现手写一个类似django的web框架示例
2018/07/20 Python
关于递归的一道.NET面试题
2013/05/12 面试题
博士学位自我鉴定范文
2013/12/26 职场文书
关于毕业的广播稿
2014/01/10 职场文书
教师个人剖析材料
2014/02/05 职场文书
大学学生个人总结
2015/02/15 职场文书
简历上的自我评价,该怎么写呢?
2019/06/13 职场文书
公司开业的祝贺语大全(60条)
2019/07/05 职场文书
React forwardRef的使用方法及注意点
2021/06/13 Javascript
Python中字符串对象语法分享
2022/02/24 Python
Python 数据可视化神器Pyecharts绘制图像练习
2022/02/28 Python
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
2022/08/05 Vue.js