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 相关文章推荐
利用discuz实现PHP大文件上传应用实例代码
Nov 14 PHP
php中静态类与静态变量用法的区别分析
Jan 15 PHP
php生成不重复随机数、数组的4种方法分享
Mar 30 PHP
PHP中addslashes与mysql_escape_string的区别分析
Apr 25 PHP
thinkPHP+ajax实现统计页面pv浏览量的方法
Mar 15 PHP
php将html转为图片的实现方法
May 19 PHP
thinkPHP5项目中实现QQ第三方登录功能
Oct 20 PHP
PHP实现生成模糊图片的方法示例
Dec 21 PHP
PHP __call()方法实现委托示例
May 20 PHP
Laravel ORM 数据model操作教程
Oct 21 PHP
laravel excel 上传文件保存到本地服务器功能
Nov 14 PHP
PHP设计模式(四)原型模式Prototype实例详解【创建型】
May 02 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
YII2框架中excel表格导出的方法详解
2017/07/21 PHP
如何通过View::first使用Laravel Blade的动态模板详解
2017/09/21 PHP
aspx中利用js实现确认删除代码
2010/07/22 Javascript
jQuery插件实现可输入和自动匹配的下拉框
2016/10/24 Javascript
Bootstrap CSS组件之按钮下拉菜单
2016/12/17 Javascript
js实现登录验证码
2016/12/22 Javascript
JS html时钟制作代码分享
2017/03/03 Javascript
微信小程序tabBar用法实例详解
2017/12/04 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
2018/05/04 Javascript
详解vue 不同环境配置不同的打包命令
2019/04/07 Javascript
vue+element创建动态的form表单及动态生成表格的行和列
2019/05/20 Javascript
实现vuex与组件data之间的数据同步更新方式
2019/11/12 Javascript
Servlet返回的数据js解析2种方法
2019/12/12 Javascript
[01:11:35]Liquid vs LGD 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
浅析Python中元祖、列表和字典的区别
2016/08/17 Python
对Python进行数据分析_关于Package的安装问题
2017/05/22 Python
Python堆排序原理与实现方法详解
2018/05/11 Python
Python实现购物评论文本情感分析操作【基于中文文本挖掘库snownlp】
2018/08/07 Python
python将秒数转化为时间格式的实例
2018/09/16 Python
python orm 框架中sqlalchemy用法实例详解
2020/02/02 Python
python3格式化字符串 f-string的高级用法(推荐)
2020/03/04 Python
Python基于当前时间批量创建文件
2020/05/07 Python
django自带的权限管理Permission用法说明
2020/05/13 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
2020/12/16 Python
HTML5标签使用方法详解
2015/11/27 HTML / CSS
SQL面试题
2013/12/09 面试题
Linux的主要特性
2016/09/03 面试题
教导处工作制度
2014/01/18 职场文书
学子宴答谢词
2014/01/25 职场文书
安全生产管理责任书
2014/04/16 职场文书
联欢会开场白
2015/06/01 职场文书
2015小学教育教学工作总结
2015/07/21 职场文书
老舍《猫》教学反思
2016/02/17 职场文书
2016企业先进集体事迹材料
2016/02/25 职场文书
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
2021/04/25 Python
Golang map映射的用法
2022/04/22 Golang