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 相关文章推荐
让你的WINDOWS同时支持MYSQL4,MYSQL4.1,MYSQL5X
Dec 06 PHP
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
Jul 01 PHP
使用php伪造referer的方法 利用referer防止图片盗链
Jan 20 PHP
四种php中webservice实现的简单架构方法及实例
Feb 03 PHP
php实现Mongodb自定义方式生成自增ID的方法
Mar 23 PHP
php常量详细解析
Oct 27 PHP
[原创]php简单隔行变色功能实现代码
Jul 09 PHP
php7安装yar扩展的方法详解
Aug 03 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
Sep 16 PHP
PHP实现的AES 128位加密算法示例
Sep 16 PHP
php数组函数array_push()、array_pop()及array_shift()简单用法示例
Jan 26 PHP
Laravel Reponse响应客户端示例详解
Sep 03 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/07/01 PHP
php生成图片验证码-附五种验证码
2015/08/19 PHP
用PHP去掉文件头的Unicode签名(BOM)方法
2017/06/22 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
one.php 多项目、函数库、类库 统一为一个版本的方法
2020/08/24 PHP
JS 控件事件小结
2012/10/31 Javascript
javascript中window.event事件用法详解
2012/12/11 Javascript
javascript中的绑定与解绑函数应用示例
2013/06/24 Javascript
jQuery判断checkbox是否选中的3种方法
2014/08/12 Javascript
PHP配置文件php.ini中打开错误报告的设置方法
2015/01/09 PHP
JavaScript实现随机替换图片的方法
2015/04/16 Javascript
nodejs超出最大的调用栈错误问题
2017/12/27 NodeJs
vue-cli中安装方法(图文详细步骤)
2018/12/12 Javascript
使用post方法实现json往返传输数据的方法
2019/03/30 Javascript
详解使用WebPack搭建React开发环境
2019/08/06 Javascript
微信小程序中网络请求缓存的解决方法
2019/12/29 Javascript
基于JavaScript实现表格隔行换色
2020/05/08 Javascript
ES6函数实现排它两种写法解析
2020/05/13 Javascript
Windows下实现Python2和Python3两个版共存的方法
2015/06/12 Python
基于python的Tkinter实现一个简易计算器
2015/12/31 Python
python利用lxml读写xml格式的文件
2017/08/10 Python
K-means聚类算法介绍与利用python实现的代码示例
2017/11/13 Python
读取本地json文件,解析json(实例讲解)
2017/12/06 Python
Python实现合并同一个文件夹下所有PDF文件的方法示例
2018/04/28 Python
详解python中的闭包
2020/09/07 Python
英国Iceland杂货店:网上食品购物
2020/12/16 全球购物
西安众合通用.net笔试题
2013/03/18 面试题
学生生病请假条范文
2014/02/16 职场文书
搞笑征婚广告词
2014/03/17 职场文书
先进集体申报材料
2014/12/25 职场文书
领导欢迎词致辞
2015/01/23 职场文书
乡镇团委工作总结2015
2015/05/26 职场文书
详解Redis基本命令与使用场景
2021/06/01 Redis
Python天气语音播报小助手
2021/09/25 Python
django项目、vue项目部署云服务器的详细过程
2022/07/23 Servers
输入框跟随文字内容适配宽实现示例
2022/08/14 Javascript