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&&mysql)一
Oct 09 PHP
使用php实现快钱支付功能(涉及到接口)
Jul 01 PHP
ThinkPHP权限认证Auth实例详解
Jul 22 PHP
Yii框架form表单用法实例
Dec 04 PHP
php基于curl实现随机ip地址抓取内容的方法
Oct 11 PHP
PHP Socket网络操作类定义与用法示例
Aug 30 PHP
PHP实现网站访问量计数器
Oct 27 PHP
laravel框架关于搜索功能的实现
Mar 15 PHP
PHPMAILER实现PHP发邮件功能
Apr 18 PHP
PHP排序算法之快速排序(Quick Sort)及其优化算法详解
Apr 21 PHP
laravel框架数据库配置及操作数据库示例
Oct 10 PHP
laravel 判断查询数据库返回值的例子
Oct 11 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
微信公众平台网页授权获取用户基本信息中授权回调域名设置的变动
2014/10/21 PHP
PHP脚本自动识别验证码查询汽车违章
2016/12/20 PHP
利用PHP获取网站访客的所在地位置
2017/01/18 PHP
php 删除指定文件夹的实例讲解
2017/07/25 PHP
六款帮助你实现惊艳视差滚动效果的jQuery插件
2012/09/14 Javascript
javascript制作sql转换为stringBuffer的小工具
2015/04/03 Javascript
JavaScript驾驭网页-DOM
2016/03/24 Javascript
浅谈jQuery 选择器和dom操作
2016/06/07 Javascript
js精准的倒计时函数分享
2016/06/29 Javascript
全面理解闭包机制
2016/07/11 Javascript
jQuery Ajax File Upload实例源码
2016/12/12 Javascript
Vue中组件之间数据的传递的示例代码
2017/09/08 Javascript
常用的9个JavaScript图表库详解
2017/12/19 Javascript
实例详解BootStrap的动态模态框及静态模态框
2018/08/13 Javascript
详解Vue CLI3配置解析之css.extract
2018/09/14 Javascript
微信小程序 获取手机号 JavaScript解密示例代码详解
2020/05/14 Javascript
[01:00:10]完美世界DOTA2联赛PWL S2 FTD vs Inki 第二场 11.21
2020/11/24 DOTA
python3之微信文章爬虫实例讲解
2017/07/12 Python
python统计多维数组的行数和列数实例
2018/06/23 Python
python画折线图的程序
2018/07/26 Python
python数据归一化及三种方法详解
2019/08/06 Python
JAVA及PYTHON质数计算代码对比解析
2020/06/10 Python
Python设计密码强度校验程序
2020/07/30 Python
PyCharm配置anaconda环境的步骤详解
2020/07/31 Python
Python程序慢的重要原因
2020/09/04 Python
澳大利亚拥有最好的家具和家居用品在线目的地:Nestz
2019/02/23 全球购物
牵手50新加坡:专为黄金岁月的单身人士而设的交友网站
2020/08/16 全球购物
房地产出纳岗位职责
2013/12/01 职场文书
毕业自我评价
2014/02/05 职场文书
荷叶母亲教学反思
2014/04/30 职场文书
部门群众路线教育实践活动对照检查材料思想汇报
2014/10/07 职场文书
严以律己专题学习研讨会发言材料
2015/11/09 职场文书
高中生物教学反思
2016/02/20 职场文书
用Java实现简单计算器功能
2021/07/21 Java/Android
git中cherry-pick命令的使用教程
2022/06/25 Servers
vue el-table实现递归嵌套的示例代码
2022/08/14 Vue.js