php 模拟POST提交的2种方法详解


Posted in PHP onJune 17, 2013

一、通过curl函数

$post_data = array();
$post_data['clientname'] = "test08";
$post_data['clientpasswd'] = "test08";
$post_data['submit'] = "submit";
$url='http://xxx.xxx.xxx.xx/xx/xxx/top.php';
$o="";
foreach ($post_data as $k=>$v)
{
    $o.= "$k=".urlencode($v)."&";
}
$post_data=substr($o,0,-1);
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL,$url);
//为了支持cookie
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$result = curl_exec($ch);

二、通过fsockopen
$URL=‘http://xxx.xxx.xxx.xx/xx/xxx/top.php';
$post_data['clientname'] = "test08";
$post_data['clientpasswd'] = "test08";
$post_data['submit'] = "ログイン";
$referrer="";
// parsing the given URL
$URL_Info=parse_url($URL);
// Building referrer
if($referrer=="") // if not given use this script as referrer
$referrer=<PRE class=php name="code">{1}</PRE><BR>
SERVER["SCRIPT_URI"]; // making string from $dataforeach($post_data as $key=>$value)$values[]="$key=".urlencode($value); $data_string=implode("&",$values);// Find out which port is needed - if not given use standard (=80)if(!isset($URL_Info["port"]))$URL_Info["port"]=80;//
 building POST-request:$request.="POST ".$URL_Info["path"]." HTTP/1.1\n";$request.="Host: ".$URL_Info["host"]."\n";$request.="Referer: $referrer\n";$request.="Content-type: application/x-www-form-urlencoded\n";$request.="Content-length: ".strlen($data_string)."\n";$request.="Connection:
 close\n";$request.="\n";$request.=$data_string."\n";$fp = fsockopen($URL_Info["host"],$URL_Info["port"]);fputs($fp, $request);while(!feof($fp)) { $result .= fgets($fp, 128);}fclose($fp);
<PRE></PRE>
<P><BR>
 </P>
<P>Snoopy 类(2)<BR>
sourceforge.net/projects/snoopy/</P>
<P>http://www.redalt.com/xref/trunk/nav.htm?wp-includes/class-snoopy.php.htm</P>
<P>HTTP类(1,2)</P>
<P>http://www.phpclasses.org/browse/download/1/file/5/name/http.php</P>
<P>PEAR HTTP_Request</P>
<P>http://pear.php.net/package/HTTP_Request</P>
<P class=akpc_pop>Popularity: 70%</P>
<P> </P>
PHP 相关文章推荐
PHP程序员编程注意事项
Apr 10 PHP
PHP中使用unset销毁变量并内存释放问题
Jul 05 PHP
PHP引用符&amp;的用法详细解析
Aug 22 PHP
codeigniter教程之多文件上传使用示例
Feb 11 PHP
php 无限级分类,超级简单的无限级分类,支持输出树状图
Jun 29 PHP
微信公众平台天气预报功能开发
Jul 06 PHP
php定时执行任务设置详解
Feb 06 PHP
cakephp常见知识点汇总
Feb 24 PHP
PHP 实现页面静态化的几种方法
Jul 23 PHP
PHP将数据导出Excel表中的实例(投机型)
Jul 31 PHP
PHP如何根据文件头检测文件类型实例代码
Oct 14 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
Oct 11 PHP
PHP的curl实现get,post和cookie(实例介绍)
Jun 17 #PHP
ThinkPHP的RBAC(基于角色权限控制)深入解析
Jun 17 #PHP
深入PHP curl参数的详解
Jun 17 #PHP
解析php curl_setopt 函数的相关应用及介绍
Jun 17 #PHP
PHP中array_merge和array相加的区别分析
Jun 17 #PHP
php之Memcache学习笔记
Jun 17 #PHP
解析ajax事件的调用顺序
Jun 17 #PHP
You might like
使用PHP socke 向指定页面提交数据
2008/07/23 PHP
thinkphp框架下404页面设置 仅三步
2016/05/14 PHP
php对接java现实加签验签的实例
2016/11/25 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
js 禁用只读文本框获得焦点时的退格键
2010/04/25 Javascript
JavaScript 获取当前时间戳的代码
2010/08/05 Javascript
Jquery.TreeView结合ASP.Net和数据库生成菜单导航条
2010/08/27 Javascript
location.href用法总结(最主要的)
2013/12/27 Javascript
使用js检测浏览器是否支持html5中的video标签的方法
2014/03/12 Javascript
深入理解javascript变量声明
2014/11/20 Javascript
js实现鼠标感应向下滑动隐藏菜单的方法
2015/02/20 Javascript
JavaScript实现Flash炫光波动特效
2015/05/14 Javascript
javascript伸缩菜单栏实现代码分享
2015/11/12 Javascript
Vue2 Vue-cli中使用Typescript的配置详解
2017/07/24 Javascript
angular2系列之路由转场动画的示例代码
2017/11/09 Javascript
jQuery实现的下雪动画效果示例【附源码下载】
2018/02/02 jQuery
基于vue-resource jsonp跨域问题的解决方法
2018/02/03 Javascript
JS处理一些简单计算题
2018/02/24 Javascript
nodejs require js文件入口,在package.json中指定默认入口main方法
2018/10/10 NodeJs
Three.JS实现三维场景
2018/12/30 Javascript
记一次Vue.js混入mixin的使用(分权限管理页面)
2019/04/17 Javascript
详解Vue.js 作用域、slot用法(单个slot、具名slot)
2019/10/15 Javascript
[01:28:44]DOTA2-DPC中国联赛定级赛 RNG vs iG BO3第一场 1月10日
2021/03/11 DOTA
python通过装饰器检查函数参数数据类型的方法
2015/03/13 Python
Python实现字符串逆序输出功能示例
2017/06/24 Python
Python实现的大数据分析操作系统日志功能示例
2019/02/11 Python
python 公共方法汇总解析
2019/09/16 Python
手机配件第一品牌:ZAGG
2017/05/28 全球购物
双方协议书
2014/04/22 职场文书
机电系毕业生求职信
2014/07/11 职场文书
小学生感恩老师演讲稿
2014/08/28 职场文书
大学生创业计划书
2019/06/24 职场文书
用Python提取PDF表格的方法
2021/04/11 Python
详解Python魔法方法之描述符类
2021/05/26 Python
深入浅析Django MTV模式
2021/09/04 Python
【DOTA2】高能暴走TK秀!PSG LGD vs ASTER - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA