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 相关文章推荐
mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函数
Mar 21 PHP
深入了解PHP类Class的概念
Jun 14 PHP
合并ThinkPHP配置文件以消除代码冗余的实现方法
Jul 22 PHP
PHP中if和or运行效率对比
Dec 12 PHP
php实现四舍五入的方法小结
Mar 03 PHP
PHP 7.0.2 正式版发布
Jan 08 PHP
PHP常见错误提示含义解释(实用!值得收藏)
Apr 25 PHP
PHP微信开发之查询微信精选文章
Jun 23 PHP
smarty模板数学运算示例
Dec 11 PHP
浅析PHP数据导出知识点
Feb 17 PHP
php实现二叉树中和为某一值的路径方法
Oct 14 PHP
PHP操作XML中XPath的应用示例
Jul 04 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
PHP4之真OO
2006/10/09 PHP
解决了Ajax、MySQL 和 Zend Framework 的乱码问题
2009/03/03 PHP
PHP字符串中特殊符号的过滤方法介绍
2014/02/18 PHP
PHP生成json和xml类型接口数据格式
2015/05/17 PHP
PHP判断数组是否为空的常用方法(五种方法)
2017/02/08 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
JS 屏蔽键盘不可用与鼠标右键不可用的方法
2013/11/18 Javascript
jquery 判断滚动条到达了底部和顶端的方法
2014/04/02 Javascript
详谈javascript异步编程
2016/02/21 Javascript
浅谈如何实现easyui的datebox格式化
2016/06/12 Javascript
BootStrap+Angularjs+NgDialog实现模式对话框
2016/08/24 Javascript
AngularJS入门教程之多视图切换用法示例
2016/11/02 Javascript
纯js实现页面返回顶部的动画(超简单)
2017/08/10 Javascript
vue中遇到的坑之变化检测问题(数组相关)
2017/10/13 Javascript
React Router v4 入坑指南(小结)
2018/04/08 Javascript
Vue.js中使用iView日期选择器并设置开始时间结束时间校验功能
2018/08/12 Javascript
vue select 获取value和lable操作
2020/08/28 Javascript
antd的select下拉框因为数据量太大造成卡顿的解决方式
2020/10/31 Javascript
JavaScript实现滚动加载更多
2020/12/27 Javascript
[01:08:57]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第二场
2014/05/24 DOTA
pyramid配置session的方法教程
2013/11/27 Python
Python2与python3中 for 循环语句基础与实例分析
2017/11/20 Python
浅谈Pandas:Series和DataFrame间的算术元素
2018/12/22 Python
Python 如何优雅的将数字转化为时间格式的方法
2019/09/26 Python
django 中使用DateTime常用的时间查询方式
2019/12/03 Python
使用OpenCV circle函数图像上画圆的示例代码
2019/12/27 Python
Pandas将列表(List)转换为数据框(Dataframe)
2020/04/24 Python
Python web如何在IIS发布应用过程解析
2020/05/27 Python
使用django自带的user做外键的方法
2020/11/30 Python
Foot Locker意大利官网:全球领先的运动鞋和服装零售商
2017/05/30 全球购物
英国现代家具和装饰网站:PN Home
2018/08/16 全球购物
追悼会主持词
2014/03/20 职场文书
小学生期末评语大全
2014/04/21 职场文书
节约粮食标语
2014/06/18 职场文书
2015年英语教师工作总结
2015/05/20 职场文书
如何解决springcloud feign 首次调用100%失败的问题
2021/06/23 Java/Android