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和ACCESS写聊天室(二)
Oct 09 PHP
php 连接mysql连接被重置的解决方法
Feb 15 PHP
PHP实现的封装验证码类详解
Jun 18 PHP
PHP数组排序函数合集 以及它们之间的联系分析
Jun 27 PHP
浅析php变量作用域的一些问题
Aug 08 PHP
PHP设计模式之观察者模式(Observer)详细介绍和代码实例
Apr 08 PHP
PHP多文件上传类实例
Mar 07 PHP
php检测apache mod_rewrite模块是否安装的方法
Mar 14 PHP
分享一个漂亮的php验证码类
Sep 29 PHP
php数组和链表的区别总结
Sep 20 PHP
浅谈PHP array_search 和 in_array 函数效率问题
Oct 15 PHP
PHP安全之register_globals的on和off的区别
Jul 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中使用preg_replace函数匹配图片并加上链接的方法
2013/02/06 PHP
PHP判断是否是微信打开,浏览器打开的方法
2018/03/14 PHP
PHP中Session ID的实现原理实例分析
2019/08/17 PHP
javascript 网页跳转的方法
2008/12/24 Javascript
用javascript删除当前行,添加行(示例代码)
2013/11/25 Javascript
iframe窗口高度自适应的又一个巧妙实现思路
2014/04/04 Javascript
JavaScript函数模式详解
2014/11/07 Javascript
微信小程序 Button 组件详解及简单实例
2017/01/10 Javascript
JS高仿抛物线加入购物车特效实现代码
2017/02/20 Javascript
React Native仿美团下拉菜单的实例代码
2017/08/08 Javascript
ionic2中使用自动生成器的方法
2018/03/04 Javascript
Angularjs Promise实例详解
2018/03/15 Javascript
vue中Npm run build 根据环境传递参数方法来打包不同域名
2018/03/29 Javascript
微信小程序实现人脸检测功能
2018/05/25 Javascript
解决element-ui中下拉菜单子选项click事件不触发的问题
2018/08/22 Javascript
vue中使用heatmapjs的示例代码(结合百度地图)
2018/09/05 Javascript
vue组件之间的数据传递方法详解
2019/04/19 Javascript
详解vue中的父子传值双向绑定及数据更新问题
2019/06/13 Javascript
javascript for循环性能测试示例
2019/08/07 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
2019/09/02 Javascript
jQuery列表动态增加和删除的实现方法
2020/11/05 jQuery
Python 字符串中的字符倒转
2008/09/06 Python
Python 私有函数的实例详解
2017/09/11 Python
python中ImageTk.PhotoImage()不显示图片却不报错问题解决
2018/12/06 Python
纯CSS3实现的阴影效果
2014/12/24 HTML / CSS
HTML5 Canvas画线技巧——实现绘制一个像素宽的细线
2013/08/02 HTML / CSS
HTML5公共页面提取作为公用代码的方法
2020/06/30 HTML / CSS
The Beach People美国:澳洲海滨奢华品牌
2018/07/05 全球购物
澳大利亚运动鞋商店:Platypus Shoes
2019/09/27 全球购物
大学生村官典型材料
2014/01/12 职场文书
党的群众路线教育实践活动宣传标语口号
2014/06/06 职场文书
党员个人剖析材料(四风问题)
2014/10/07 职场文书
统计工作个人总结
2015/03/03 职场文书
2015年公路养护工作总结
2015/05/13 职场文书
MySQL索引 高效获取数据的数据结构
2022/05/02 MySQL
CSS使用Flex和Grid布局实现3D骰子
2022/08/05 HTML / CSS