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 面向对象 final类与final方法
May 05 PHP
php set_time_limit(0) 设置程序执行时间的函数
May 26 PHP
浅析php中抽象类和接口的概念以及区别
Jun 27 PHP
php 不使用js实现页面跳转
Feb 11 PHP
php树型类实例
Dec 05 PHP
PHP中trim()函数简单使用指南
Apr 16 PHP
PHP使用递归方式列出当前目录下所有文件的方法
Jun 02 PHP
PHP生成制作验证码的简单实例
Jun 12 PHP
Thinkphp和Bootstrap结合打造个性的分页样式(推荐)
Aug 01 PHP
Yii2框架自定义验证规则操作示例
Feb 08 PHP
详解PHP PDO简单教程
May 28 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
Mar 24 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数组函数序列之krsort()- 对数组的元素键名进行降序排序,保持索引关系
2011/11/02 PHP
基于php的微信公众平台开发入门实例
2015/04/15 PHP
验证token、回复图文\文本、推送消息的实用微信类php代码
2016/06/28 PHP
mysql desc(DESCRIBE)命令实例讲解
2016/09/24 PHP
php strftime函数获取日期时间(switch用法)
2018/05/16 PHP
IE与Firefox下javascript getyear年份的兼容性写法
2007/12/20 Javascript
javascript 清空form表单中某种元素的值
2009/12/26 Javascript
EasyUi tabs的高度与宽度根据IE窗口的变化自适应代码
2010/10/26 Javascript
JS trim去空格的最佳实践
2011/10/30 Javascript
JavaScript字符串String和Array操作的有趣方法
2012/12/18 Javascript
JS 如何获取radio选中后的值及不选择取radio的值
2013/10/28 Javascript
分享20个提升网站界面体验的jQuery插件
2014/12/15 Javascript
jQuery中empty()方法用法实例
2015/01/16 Javascript
javascript实现网页字符定位的方法
2015/07/14 Javascript
基于jquery实现一个滚动的分步注册向导-附源码
2015/08/26 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
2015/10/26 Javascript
使用BootStrap实现悬浮窗口的效果
2016/12/13 Javascript
bootstrap的工具提示实例代码
2017/05/17 Javascript
vue vuex vue-rouert后台项目——权限路由(适合初学)
2017/12/29 Javascript
JavaScript中EventLoop介绍
2018/01/22 Javascript
vue中的ref和$refs的使用
2018/11/22 Javascript
JSON字符串操作移除空串更改key/value的介绍
2019/01/05 Javascript
vue 解决数组赋值无法渲染在页面的问题
2019/10/28 Javascript
[01:01:36]Optic vs paiN 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
[03:11]不朽宝藏三外观展示
2020/09/18 DOTA
Python生成pdf文件的方法
2014/08/04 Python
Python爬虫抓取代理IP并检验可用性的实例
2018/05/07 Python
对DJango视图(views)和模版(templates)的使用详解
2019/07/17 Python
python安装读取grib库总结(推荐)
2020/06/24 Python
Python基于pyjnius库实现访问java类
2020/07/31 Python
mac系统下安装pycharm、永久激活、中文汉化详细教程
2020/11/24 Python
Python项目打包成二进制的方法
2020/12/30 Python
利用python绘制正态分布曲线
2021/01/04 Python
高清屏下canvas重置尺寸引发的问题的解决
2019/10/14 HTML / CSS
有模特经验的简历自我评价
2013/09/19 职场文书
GPU服务器的多用户配置方法
2022/07/07 Servers