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 相关文章推荐
在数据量大(超过10万)的情况下
Jan 15 PHP
PHP 木马攻击防御技巧
Jun 13 PHP
Memcache 在PHP中的使用技巧
Feb 08 PHP
PHP多线程抓取网页实现代码
Jul 22 PHP
PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
Dec 16 PHP
phpexcel导入excel数据使用方法实例
Dec 24 PHP
PHP之uniqid()函数用法
Nov 03 PHP
PHP封装的Twitter访问类实例
Jul 18 PHP
Yii2.0 Basic代码中路由链接被转义的处理方法
Sep 21 PHP
yii框架redis结合php实现秒杀效果(实例代码)
Oct 26 PHP
laravel-admin 实现在指定的相册下添加照片
Oct 21 PHP
laravel框架创建授权策略实例分析
Nov 22 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
Yii操作数据库的3种方法
2014/03/11 PHP
PHP中的常见魔术方法功能作用及用法实例
2015/07/01 PHP
js 表格隔行颜色
2009/12/02 Javascript
js本身的局限性 别让javascript做太多事
2010/03/23 Javascript
JS对象转换为Jquery对象示例
2014/01/26 Javascript
Javascript正则控制文本框只能输入整数或浮点数
2014/09/02 Javascript
EasyUI中datagrid在ie下reload失败解决方案
2015/03/09 Javascript
Angular2中Bootstrap界面库ng-bootstrap详解
2016/10/18 Javascript
JS动态插入脚本和插入引用外部链接脚本的方法
2018/05/21 Javascript
微信运维交互机器人的示例代码
2018/11/12 Javascript
详解 微信小程序开发框架(MINA)
2019/05/17 Javascript
JS中的算法与数据结构之常见排序(Sort)算法详解
2019/08/16 Javascript
layer.js open 隐藏滚动条的例子
2019/09/05 Javascript
微信小程序页面渲染实现方法
2019/11/06 Javascript
Python的面向对象思想分析
2015/01/14 Python
详解Python中内置的NotImplemented类型的用法
2015/03/31 Python
Python 运行 shell 获取输出结果的实例
2019/01/07 Python
在Qt5和PyQt5中设置支持高分辨率屏幕自适应的方法
2019/06/18 Python
pycharm 设置项目的根目录教程
2020/02/12 Python
Pycharm 安装 idea VIM插件的图文教程详解
2020/02/21 Python
浅谈python中频繁的print到底能浪费多长时间
2020/02/21 Python
Python 利用flask搭建一个共享服务器的步骤
2020/12/05 Python
websocket+sockjs+stompjs详解及实例代码
2018/11/30 HTML / CSS
html5拖曳操作 HTML5实现网页元素的拖放操作
2013/01/02 HTML / CSS
澳大利亚第一的设计师礼服租赁网站:GlamCorner
2017/08/13 全球购物
北美主要的汽车零部件零售商:AutoShack.com
2019/02/23 全球购物
日本最佳原创设计品牌:Felissimo(芬理希梦)
2019/03/19 全球购物
Jacadi Paris英国官网:法国童装品牌
2019/08/09 全球购物
日本化妆品植村秀俄罗斯官方网站:Shu Uemura俄罗斯
2020/02/01 全球购物
js正则匹配markdown里的图片标签的实现
2021/03/24 Javascript
竞聘上岗演讲稿范文
2014/01/10 职场文书
元旦寄语大全
2014/04/10 职场文书
2014年党务公开方案
2014/05/08 职场文书
音乐教育专业自荐信
2014/09/18 职场文书
就业推荐表院系意见
2015/06/05 职场文书
redis使用不当导致应用卡死bug的过程解析
2021/07/01 Redis