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环境搭建最新方法
Sep 05 PHP
在PHP3中实现SESSION的功能(三)
Oct 09 PHP
PHP CURL模拟登录新浪微博抓取页面内容 基于EaglePHP框架开发
Jan 16 PHP
php数组转换js数组操作及json_encode的用法详解
Oct 26 PHP
PHP的Yii框架入门使用教程
Feb 15 PHP
Zend Framework教程之Zend_Layout布局助手详解
Mar 04 PHP
PHP实现的多文件上传类及用法示例
May 06 PHP
[原创]解决wincache不支持64位PHP5.5/5.6的问题(提供64位wincache下载)
Jun 22 PHP
php版微信数据统计接口用法示例
Oct 12 PHP
PHP正则删除HTML代码中宽高样式的方法
Jun 12 PHP
php处理抢购类功能的高并发请求
Feb 08 PHP
Thinkphp 在api开发中异常返回依然是html的解决方式
Oct 16 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中养成7个面向对象的好习惯
2010/01/28 PHP
使用PHP实现密保卡功能实现代码<打包下载直接运行>
2011/10/09 PHP
PHP面向对象程序设计组合模式与装饰模式详解
2016/12/02 PHP
PHP实现字符串的全排列详解
2019/04/24 PHP
laravel 查询数据库获取结果实现判断是否为空
2019/10/24 PHP
javascript中callee与caller的用法和应用场景
2010/12/08 Javascript
ASP.NET jQuery 实例17 通过使用jQuery validation插件校验ListBox
2012/02/03 Javascript
jQuery Mobile 导航栏代码
2013/11/01 Javascript
Js实现滚动变色的文字效果
2014/06/16 Javascript
JS实现动态给标签控件添加事件的方法示例
2017/05/13 Javascript
基于匀速运动的实例讲解(侧边栏,淡入淡出)
2017/10/17 Javascript
AngularJS中controller控制器继承的使用方法
2017/11/03 Javascript
Vue项目中使用Vux的安装过程
2018/05/01 Javascript
还不懂递归?读完这篇文章保证你会懂
2018/07/29 Javascript
详解js根据百度地图提供经纬度计算两点距离
2019/05/13 Javascript
编写v-for循环的技巧汇总
2020/12/01 Javascript
javascript实现倒计时关闭广告
2021/02/09 Javascript
[40:27]完美世界DOTA2联赛PWL S3 PXG vs GXR 第一场 12.19
2020/12/24 DOTA
python分割文件的常用方法
2014/11/01 Python
Python创建xml的方法
2015/03/10 Python
Python中encode()方法的使用简介
2015/05/18 Python
浅谈Python的垃圾回收机制
2016/12/17 Python
python 中的int()函数怎么用
2017/10/17 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
2018/07/30 Python
python利用JMeter测试Tornado的多线程
2020/01/12 Python
python tqdm 实现滚动条不上下滚动代码(保持一行内滚动)
2020/02/19 Python
python传到前端的数据,双引号被转义的问题
2020/04/03 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
2021/02/20 Python
html5 更新图片颜色示例代码
2014/07/29 HTML / CSS
Lee牛仔裤澳大利亚官网:美国著名牛仔裤品牌
2017/09/02 全球购物
解除劳动合同协议书范本
2014/04/14 职场文书
市级文明单位申报材料
2014/05/07 职场文书
文明寝室申报材料
2014/05/12 职场文书
幼儿园园长新年寄语2015
2014/12/08 职场文书
2015年重阳节活动总结
2015/03/24 职场文书
单位收入证明范本
2015/06/18 职场文书