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表单提交表单名称含有点号(.)则会被转化为下划线(_)
Dec 14 PHP
php实现自动获取生成文章主题关键词功能的深入分析
Jun 03 PHP
解析Linux下Varnish缓存的配置优化
Jun 20 PHP
ThinkPHP页面跳转success与error方法概述
Jun 25 PHP
yii2.0实现验证用户名与邮箱功能
Dec 22 PHP
php 常用的系统函数
Feb 07 PHP
总结一些PHP中好用但又容易忽略的小知识
Jun 02 PHP
php-app开发接口加密详解
Apr 18 PHP
PHP学习笔记之session
May 06 PHP
PHP Laravel中的Trait使用方法
Jan 20 PHP
PHP大文件切割上传功能实例分析
Jul 01 PHP
PHP标准库 (SPL)――Countable用法示例
Jun 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 cookie的操作实现代码(登录)
2010/12/29 PHP
有道搜索和IP138的IP的API接口(PHP应用)
2012/11/29 PHP
PHP+FFMPEG实现将视频自动转码成H264标准Mp4文件
2014/09/24 PHP
thinkphp 框架数据库切换实现方法分析
2020/05/18 PHP
Extjs4实现两个GridPanel之间数据拖拽功能具体方法
2013/11/21 Javascript
利用js实现前台动态添加文本框,后台获取文本框内容(示例代码)
2013/11/25 Javascript
JavaScript判断是否为数组的3种方法及效率比较
2015/04/01 Javascript
jQuery的each循环用法简单示例
2016/06/12 Javascript
jQuery和hwSlider实现内容响应式可触控滑动切换效果附源码下载(二)
2016/06/22 Javascript
JS中使用 after 伪类清除浮动实例
2017/03/01 Javascript
IntelliJ IDEA编辑器配置vue高亮显示
2019/09/26 Javascript
jQuery插件simplePagination的使用方法示例
2020/04/28 jQuery
解决Antd 里面的select 选择框联动触发的问题
2020/10/24 Javascript
python实现的重启关机程序实例
2014/08/21 Python
python实现在每个独立进程中运行一个函数的方法
2015/04/23 Python
Python首次安装后运行报错(0xc000007b)的解决方法
2016/10/18 Python
Python实现多进程共享数据的方法分析
2017/12/04 Python
python实现画一颗树和一片森林
2018/06/25 Python
python获取txt文件词向量过程详解
2019/07/05 Python
python 实现提取log文件中的关键句子,并进行统计分析
2019/12/24 Python
Python数据可视化实现多种图例代码详解
2020/07/14 Python
python Timer 类使用介绍
2020/12/28 Python
房地产销售员的自我评价分享
2013/12/04 职场文书
怎样客观的做好自我评价
2013/12/28 职场文书
消防器材管理制度
2014/01/28 职场文书
关于中国梦的演讲稿
2014/04/23 职场文书
质量承诺书格式
2014/05/20 职场文书
幼儿园课题方案
2014/06/09 职场文书
2014学校领导四风问题对照检查材料思想汇报
2014/09/22 职场文书
教师批评与自我批评发言稿
2014/10/15 职场文书
国际贸易实务实训报告
2014/11/05 职场文书
个人廉政承诺书
2015/04/28 职场文书
爱心捐款活动总结
2015/05/09 职场文书
2016年班主任新年寄语
2015/08/18 职场文书
Python中OpenCV实现查找轮廓的实例
2021/06/08 Python
MySQL中order by的执行过程
2022/06/05 MySQL