php模拟post提交数据的方法


Posted in PHP onFebruary 12, 2015

本文实例讲述了php模拟post提交数据的方法。分享给大家供大家参考。具体如下:

php模拟post提交数据,用处很多,可用来网站的采集,登陆等等

这里以我项目中的论坛登录为例加以说明:

function A_bbslogin($user_login,$password,$host,$port="80"){ 

//需要提交的post数据 

$argv = array( 

'cookie' => array('user_login' =>$user_login, 'password' => $password,'_wp_http_referer'=>'/bbpress/','re'=>'','remember'=>true) 

); 

foreach($argv['cookie'] as $key => $value) { 

$params[] = $key . '=' . $value; 

} 

$params = implode('&', $params); 

$header = "POST /bbpress/bb-login.php HTTP/1.1\r\n"; 

$header .= "Host:$host:$port\r\n"; 

$header .= "Content-Type: application/x-www-form-urlencoded\r\n"; 

$header .= "Content-Length: " . strlen($params) . "\r\n"; 

$header .= "Connection: Close\r\n\r\n"; 

$header .= $params; 

$fp = fsockopen($host, $port); 

fputs($fp, $header); 

while(!feof($fp)) { 

$str = fgets($fp); //以下是自己的逻辑代码,这里主要是模拟cookie,可用来同步登陆 

if(!(strpos($str,"Set-Cookie:") === false)){ 

$tmparray = explode(" ",$str); 

$cookiearray = explode("=",$tmparray[1]); 

$cookiepaths = explode("=",$tmparray[6]); 

$cookiename = urldecode($cookiearray[0]); 

$cookievalue = urldecode(substr($cookiearray[1],0,strlen($cookiearray[1])-1)); 

$cookietime = time()+3600*24*7; 

$cookiepath = urldecode(substr($cookiepaths[1],0,strlen($cookiepaths[1])-1)); 

setcookie($cookiename,$cookievalue,$cookietime,$cookiepath); 

} 

} 

fclose($fp); 

}

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
php中一个有意思的日期逻辑处理
Mar 25 PHP
PHP6 中可能会出现的新特性预览
Apr 04 PHP
用 Composer构建自己的 PHP 框架之基础准备
Oct 30 PHP
十幅图告诉你什么是PHP引用
Feb 22 PHP
php遍历解析xml字符串的方法
May 05 PHP
PHP入门教程之上传文件实例详解
Sep 11 PHP
PHP中文字符串截断无乱码解决方法
Oct 10 PHP
PHP删除二维数组中相同元素及数组重复值的方法示例
May 05 PHP
PHP实现字符串翻转功能的方法【递归与循环算法】
Nov 03 PHP
PHP使用SMTP邮件服务器发送邮件示例
Aug 28 PHP
php中如何执行linux命令详解
Nov 06 PHP
PHP实现随机发放扑克牌
Apr 21 PHP
PHP遍历数组的三种方法及效率对比分析
Feb 12 #PHP
PHP进程同步代码实例
Feb 12 #PHP
PHP CURL 内存泄露问题解决方法
Feb 12 #PHP
PHP中捕获超时事件的方法实例
Feb 12 #PHP
php单例模式示例分享
Feb 12 #PHP
PHP 正则表达式小结
Feb 12 #PHP
一个非常完美的读写ini格式的PHP配置类分享
Feb 12 #PHP
You might like
几个学习PHP的网址
2006/11/25 PHP
Godaddy空间Zend Optimizer升级方法
2010/05/10 PHP
php中heredoc与nowdoc介绍
2014/12/25 PHP
PHP面向对象五大原则之里氏替换原则(LSP)详解
2018/04/08 PHP
通过修改referer下载文件的方法
2008/05/11 Javascript
麻雀虽小五脏俱全 Dojo自定义控件应用
2010/09/04 Javascript
JavaScript字符串对象toLowerCase方法入门实例(用于把字母转换为小写)
2014/10/17 Javascript
js实现的Easy Tabs选项卡用法实例
2015/09/06 Javascript
Jquery ajax加载等待执行结束再继续执行下面代码操作
2015/11/24 Javascript
Bootstrap carousel轮转图的使用实例详解
2016/05/17 Javascript
Bootstrap CSS布局之图像
2016/12/17 Javascript
JavaScript中 this 指向问题深度解析
2017/02/21 Javascript
详解nodejs通过代理(proxy)发送http请求(request)
2017/09/22 NodeJs
在一个页面实现两个zTree联动的方法
2017/12/20 Javascript
vue.js将时间戳转化为日期格式的实现代码
2018/06/05 Javascript
微信小程序模板消息推送的两种实现方式
2019/08/27 Javascript
解决node终端下运行js文件不支持ES6语法
2020/04/04 Javascript
[57:59]EG vs Secret 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
在Django框架中编写Contact表单的教程
2015/07/17 Python
Python如何读取MySQL数据库表数据
2017/03/11 Python
python requests 使用快速入门
2017/08/31 Python
python 求1-100之间的奇数或者偶数之和的实例
2019/06/11 Python
Python 实现数据结构-循环队列的操作方法
2019/07/17 Python
Python字符串和正则表达式中的反斜杠('\')问题详解
2019/09/03 Python
python序列化与数据持久化实例详解
2019/12/20 Python
matplotlib教程——强大的python作图工具库
2020/10/15 Python
无需JS和jQuery代码实现CSS3鼠标浮动放大图片
2016/11/21 HTML / CSS
英国计算机产品零售商:Novatech(定制个人电脑、笔记本电脑、工作站和服务器)
2018/01/28 全球购物
英智兴达软件测试笔试题
2016/10/12 面试题
yy婚礼主持词
2014/03/14 职场文书
警校毕业生自我评价
2014/04/06 职场文书
文明礼貌演讲稿
2014/05/12 职场文书
服务整改报告
2014/11/06 职场文书
2014年组织部工作总结
2014/11/14 职场文书
python获取淘宝服务器时间的代码示例
2021/04/22 Python
docker-compose部署Yapi的方法
2022/04/08 Servers