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 相关文章推荐
4.与数据库的连接
Oct 09 PHP
Win2000+Apache+MySql+PHP4+PERL安装使用小结
Oct 09 PHP
建立动态的WML站点(二)
Oct 09 PHP
QQ登录 PHP OAuth示例代码
Jul 20 PHP
Sorting Array Values in PHP(数组排序)
Sep 15 PHP
PHP生成plist数据的方法
Jun 16 PHP
PHP二维数组矩形转置实例
Jul 20 PHP
PHP+Ajax异步带进度条上传文件实例
Nov 01 PHP
php获取当前url地址的方法小结
Jan 10 PHP
PHP实现的Redis多库选择功能单例类
Jul 27 PHP
详解关于php的xdebug配置(编辑器vscode)
Jan 29 PHP
tp5.1 实现setInc字段自动加1
Oct 18 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实现把数组按指定的个数分隔
2014/02/17 PHP
去掉destoon资讯内容页keywords关键字自带的文章标题的方法
2014/08/21 PHP
PHP 数组基本操作小结(推荐)
2016/06/13 PHP
PHP 表单提交及处理表单数据详解及实例
2016/12/27 PHP
索趣科技的答案
2007/02/07 Javascript
javascript学习笔记(十七) 检测浏览器插件代码
2012/06/20 Javascript
js获取当前页面的url网址信息
2014/06/12 Javascript
JavaScript参数个数可变的函数举例说明
2014/10/10 Javascript
javascript用函数实现对象的方法
2015/05/14 Javascript
JavaScript实现列表分页功能特效
2015/05/15 Javascript
JS+CSS实现鼠标滑过时动态翻滚的导航条效果
2015/09/24 Javascript
总结JavaScript的正则与其他语言的不同之处
2016/08/25 Javascript
jQuery插件HighCharts实现的2D条状图效果示例【附demo源码下载】
2017/03/15 Javascript
初探JavaScript 面向对象(推荐)
2017/09/03 Javascript
JavaScript中的连续赋值问题实例分析
2019/07/12 Javascript
微信小程序获取公众号文章列表及显示文章的示例代码
2020/03/10 Javascript
vue路由切换时取消之前的所有请求操作
2020/09/01 Javascript
Python语言的12个基础知识点小结
2014/07/10 Python
Python 爬虫学习笔记之多线程爬虫
2016/09/21 Python
Python Web编程之WSGI协议简介
2018/07/18 Python
详解django2中关于时间处理策略
2019/03/06 Python
pytorch获取模型某一层参数名及参数值方式
2019/12/30 Python
浅析Python 序列化与反序列化
2020/08/05 Python
python工具——Mimesis的简单使用教程
2021/01/16 Python
CSS3五个技巧给你的网站带来出色的效果
2009/04/02 HTML / CSS
html5实现多文件的上传示例代码
2014/02/13 HTML / CSS
French Connection官网:女装、男装及家居用品
2019/03/18 全球购物
一份婚庆公司创业计划书
2014/01/11 职场文书
雨花台导游词
2015/02/06 职场文书
医德医风自我评价2015
2015/03/03 职场文书
小学主题班会教案
2015/08/17 职场文书
2016年小学生教师节广播稿
2015/12/18 职场文书
中学音乐课教学反思
2016/02/18 职场文书
Python竟然能剪辑视频
2021/05/25 Python
拒绝盗图!教你怎么用python给图片加水印
2021/06/04 Python
win11无线投屏在哪设置? win11无线投屏功能的使用方法
2022/04/08 数码科技