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 前一天或后一天的日期
Jun 28 PHP
php excel类 phpExcel使用方法介绍
Aug 21 PHP
PHP Curl多线程原理实例详解
Nov 06 PHP
linux下安装php的memcached客户端
Aug 03 PHP
php实现扫描二维码根据浏览器类型访问不同下载地址
Oct 15 PHP
php检索或者复制远程文件的方法
Mar 13 PHP
PHP操作MySQL的mysql_fetch_* 函数的常见用法教程
Dec 25 PHP
YiiFramework入门知识点总结(图文教程)
Dec 28 PHP
php生成图片验证码的方法
Apr 15 PHP
PHP判断用户是否已经登录(跳转到不同页面或者执行不同动作)
Sep 22 PHP
完美解决phpexcel导出到xls文件出现乱码的问题
Oct 29 PHP
PHP常用函数之格式化时间操作示例
Oct 21 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
swfupload 多文件上传实现代码
2008/08/27 PHP
php 验证码实例代码
2010/06/01 PHP
php使用ffmpeg向视频中添加文字字幕的实现方法
2016/05/23 PHP
JS 分号引起的一段调试问题
2009/06/18 Javascript
jQuery+ajax中getJSON() 用法实例
2014/12/22 Javascript
jQuery实现可用于博客的动态滑动菜单
2015/03/09 Javascript
基于AngularJS实现页面滚动到底自动加载数据的功能
2015/10/16 Javascript
基于jquery实现无限级树形菜单
2016/03/22 Javascript
Javascript中prototype的使用详解
2016/06/18 Javascript
js实现登录验证码
2016/12/22 Javascript
jquery实现轮播图效果
2017/02/13 Javascript
Bootstrap与Angularjs的模态框实例代码
2017/08/03 Javascript
JS获取数组中出现次数最多及第二多元素的方法
2017/10/27 Javascript
vue技术分享之你可能不知道的7个秘密
2018/04/09 Javascript
一个因@click.stop引发的bug的解决
2019/01/08 Javascript
使用RxJS更优雅地进行定时请求详析
2019/06/02 Javascript
解决layui数据表格Date日期格式的回显Object的问题
2019/09/19 Javascript
vue中实现点击按钮滚动到页面对应位置的方法(使用c3平滑属性实现)
2019/12/29 Javascript
原生微信小程序开发中 redux 的使用详解
2021/02/18 Javascript
[55:42]VG vs VGJ.T 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
python3.6.3安装图文教程 TensorFlow安装配置方法
2020/06/24 Python
Python操作Excel插入删除行的方法
2018/12/10 Python
Django 实现前端图片压缩功能的方法
2019/08/07 Python
python小程序之4名牌手洗牌发牌问题解析
2020/05/15 Python
python中的测试框架
2020/11/13 Python
高一地理教学反思
2014/01/18 职场文书
暑期教师培训方案
2014/06/07 职场文书
企业仓管员岗位职责
2014/06/15 职场文书
幼儿园中班区域活动总结
2014/07/09 职场文书
销售人才自我评价范文
2014/09/27 职场文书
故宫的导游词
2015/01/31 职场文书
2017元旦、春节期间廉洁自律承诺书
2016/03/25 职场文书
redis cluster支持pipeline的实现思路
2021/06/23 Redis
Pandas 稀疏数据结构的实现
2021/07/25 Python
Win11安全功能升级:内置防网络钓鱼功能
2022/04/08 数码科技
xhunter1.sys可以删除嘛? win11提示xhunter1.sys驱动不兼容解决办法
2022/09/23 数码科技