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实现用户认证及管理完全源码
Mar 11 PHP
php实现文件编码批量转换
Mar 10 PHP
php+ajax导入大数据时产生的问题处理
Jun 11 PHP
PHP连接MSSQL2008/2005数据库(SQLSRV)配置实例
Oct 22 PHP
3种php生成唯一id的方法
Nov 23 PHP
WordPress中用于获取搜索表单的PHP函数使用解析
Jan 05 PHP
zen cart实现订单中增加paypal中预留电话的方法
Jul 12 PHP
PHP基于接口技术实现简单的多态应用完整实例
Apr 26 PHP
PHP开发中解决并发问题的几种实现方法分析
Nov 13 PHP
使用XHProf查找PHP性能瓶颈的实例
Dec 13 PHP
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
Sep 08 PHP
PHP中多字节字符串操作实例详解
Aug 23 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 执行系统命令的方法
2009/07/07 PHP
解析关于wamp启动是80端口被占用的问题
2013/06/21 PHP
zf框架的zend_cache缓存使用方法(zend框架)
2014/03/14 PHP
PHP的error_reporting错误级别变量对照表
2014/07/08 PHP
推荐40款强大的 jQuery 导航插件和教程(上篇)
2012/09/14 Javascript
js加强的经典分页实例
2013/03/15 Javascript
javascript实现炫酷的拖动分页
2015/05/11 Javascript
JS数组array元素的添加和删除方法代码实例
2015/06/01 Javascript
HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)
2016/05/25 Javascript
jQuery UI Bootstrap是什么?
2016/06/17 Javascript
Vue.js组件使用开发实例教程
2016/11/01 Javascript
jQuery中的一些小技巧
2017/01/18 Javascript
深入理解AngularJs-scope的脏检查(一)
2017/06/19 Javascript
vue loadmore组件上拉加载更多功能示例代码
2017/07/19 Javascript
jQuery实现注册会员时密码强度提示信息功能示例
2017/09/05 jQuery
vue better-scroll插件使用详解
2018/01/25 Javascript
JS处理一些简单计算题
2018/02/24 Javascript
小程序实现左右来回滚动字幕效果
2018/12/28 Javascript
vue实现滑动到底部加载更多效果
2020/10/27 Javascript
Elasticsearch实现复合查询高亮结果功能
2019/09/10 Javascript
跟老齐学Python之正规地说一句话
2014/09/28 Python
Centos Python2 升级到Python3的简单实现
2016/06/21 Python
python机器学习理论与实战(四)逻辑回归
2018/01/19 Python
python: 自动安装缺失库文件的方法
2018/10/22 Python
基于Python实现用户管理系统
2019/02/26 Python
python 实现查找文件并输出满足某一条件的数据项方法
2019/06/12 Python
Python3enumrate和range对比及示例详解
2019/07/13 Python
弄懂这56个Python使用技巧(轻松掌握Python高效开发)
2019/09/18 Python
关于ResNeXt网络的pytorch实现
2020/01/14 Python
Revolution Beauty美国官网:英国知名化妆品网站
2018/07/23 全球购物
优衣库台湾官网:UNIQLO台湾
2019/02/01 全球购物
Ibatis的核心配置文件都有什么
2014/09/08 面试题
会计与出纳自荐书范文
2014/03/16 职场文书
就业协议书的作用
2014/04/11 职场文书
艾滋病宣传活动总结
2014/05/08 职场文书
Java 在生活中的 10 大应用
2021/11/02 Java/Android