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 相关文章推荐
图书管理程序(三)
Oct 09 PHP
PHP-CGI进程CPU 100% 与 file_get_contents 函数的关系分析
Aug 15 PHP
php调整gif动画图片尺寸示例代码分享
Dec 05 PHP
destoon切换城市后实现logo旁边显示地区名称的方法
Aug 21 PHP
微信公众号点击菜单即可打开并登录微站的实现方法
Nov 14 PHP
PHP中使用Imagick实现各种图片效果实例
Jan 21 PHP
php中动态调用函数的方法
Mar 16 PHP
php基于jquery的ajax技术传递json数据简单实例
Apr 15 PHP
利用PHP生成静态html页面的原理
Sep 30 PHP
PHP在innodb引擎下快速代建全文搜索功能简明教程【基于xunsearch】
Oct 14 PHP
CI框架(CodeIgniter)实现的数据库增删改查操作总结
May 23 PHP
PHP高并发和大流量解决方案整理
Mar 09 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中动态显示签名和ip原理
2007/03/28 PHP
php文档更新介绍
2011/07/22 PHP
YII模块实现绑定二级域名的方法
2014/07/09 PHP
ThinkPHP中Session用法详解
2014/11/29 PHP
Symfony模板的快捷变量用法实例
2016/03/17 PHP
Laravel 5.4.36中session没有保存成功问题的解决
2018/02/19 PHP
浅谈Laravel核心解读之Console内核
2018/12/02 PHP
javascript的事件描述
2006/09/08 Javascript
javascript hashtable 修正版 下载
2010/12/30 Javascript
jQuery实现的多屏图像图层切换效果实例
2015/05/07 Javascript
jquery实现具有收缩功能的垂直导航菜单
2016/02/16 Javascript
基于JS实现无缝滚动思路及代码分享
2016/06/07 Javascript
Angular设置title信息解决SEO方面存在问题
2016/08/19 Javascript
jquery插件ContextMenu设置右键菜单
2017/03/13 Javascript
命令行批量截图Node脚本示例代码
2019/01/25 Javascript
详解如何用webpack4从零开始构建react开发环境
2019/01/27 Javascript
浅谈Vue.js组件(二)
2019/04/09 Javascript
JS异步错误捕获的一些事小结
2019/04/26 Javascript
vue-drag-chart 拖动/缩放图表组件的实例代码
2020/04/10 Javascript
Python脚本实现DNSPod DNS动态解析域名
2015/02/14 Python
Python3.x中自定义比较函数
2015/04/24 Python
Python机器学习之决策树算法
2017/12/22 Python
Python自定义函数实现求两个数最大公约数、最小公倍数示例
2018/05/21 Python
Django进阶之CSRF的解决
2018/08/01 Python
浅谈python函数调用返回两个或多个变量的方法
2019/01/23 Python
Python求均值,方差,标准差的实例
2019/06/29 Python
python SQLAlchemy的Mapping与Declarative详解
2019/07/04 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码
2021/02/18 Python
CSS3中的content属性使用示例
2015/07/20 HTML / CSS
战友聚会邀请函
2014/01/18 职场文书
超市开店计划书
2014/09/15 职场文书
PHP解决高并发问题
2021/04/01 PHP
详解运行Python的神器Jupyter Notebook
2021/06/03 Python
使用Vue3+Vant组件实现App搜索历史记录功能(示例代码)
2021/06/09 Vue.js