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 的 __FILE__ 常量
Jan 15 PHP
php部分常见问题总结
Mar 27 PHP
PHP写的求多项式导数的函数代码
Jul 04 PHP
PHP面向对象学习笔记之二 生成对象的设计模式
Oct 06 PHP
PHP获取当前url的具体方法全面解析
Nov 26 PHP
php对二维数组按指定键值key排序示例代码
Nov 26 PHP
PHP 导出Excel示例分享
Aug 18 PHP
WebQQ最新登陆协议的用法
Dec 22 PHP
PHP文件与目录操作示例
Dec 24 PHP
PHP单例模式定义与使用实例详解
Feb 06 PHP
基于win2003虚拟机中apache服务器的访问
Aug 01 PHP
Laravel框架实现即点即改功能的方法分析
Oct 31 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框架性能测试报告
2016/05/08 PHP
PHP预定义超全局数组变量小结
2018/08/20 PHP
php使用scandir()函数扫描指定目录下所有文件示例
2019/06/08 PHP
jquery 操作iframe的几种方法总结
2013/12/13 Javascript
ajax提交表单实现网页无刷新注册示例
2014/05/08 Javascript
jQuery实现3D文字特效的方法
2015/03/10 Javascript
javascript制作的滑动图片菜单
2015/05/15 Javascript
jQuery实现自动调整字体大小的方法
2015/06/15 Javascript
基于angularjs实现图片放大镜效果
2016/08/31 Javascript
深入理解Node.js中的进程管理
2017/03/13 Javascript
前端框架学习总结之Angular、React与Vue的比较详解
2017/03/14 Javascript
node.js用fs.rename强制重命名或移动文件夹的方法
2017/12/27 Javascript
vue+mousemove实现鼠标拖动功能(拖动过快失效问题解决方法)
2018/08/24 Javascript
Vue数据绑定简析小结
2019/05/07 Javascript
nodejs log4js 使用详解
2019/05/31 NodeJs
详解vue为什么要求组件模板只能有一个根元素
2019/07/22 Javascript
ES6 Promise对象概念及用法实例详解
2019/10/15 Javascript
基于JS正则表达式实现模板数据动态渲染(实现思路详解)
2020/03/07 Javascript
[44:50]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第二局
2016/02/26 DOTA
Python3中的列表,元组,字典,字符串相关知识小结
2017/11/10 Python
python @property的用法及含义全面解析
2018/02/01 Python
python中数据爬虫requests库使用方法详解
2018/02/11 Python
python3实现磁盘空间监控
2018/06/21 Python
使用Python监视指定目录下文件变更的方法
2018/10/15 Python
使用Python 统计高频字数的方法
2019/01/31 Python
Python如何急速下载第三方库详解
2020/11/02 Python
HTML5新增的表单元素和属性实例解析
2014/07/07 HTML / CSS
用HTML5实现鼠标滚轮事件放大缩小图片的功能
2015/06/25 HTML / CSS
MYSQL基础面试题
2012/05/13 面试题
资深财务管理人员自我评价
2013/09/22 职场文书
教师推荐信范文
2013/11/24 职场文书
《争吵》教学反思
2014/02/15 职场文书
早读课迟到检讨书
2014/09/25 职场文书
不同意离婚代理词
2015/05/23 职场文书
入党积极分子考察意见
2015/06/02 职场文书
Java 中的 Lambda List 转 Map 的多种方法详解
2022/07/07 Java/Android