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和ACCESS写聊天室(八)
Oct 09 PHP
几个php应用技巧
Mar 27 PHP
PHP添加MySQL数据记录代码
Jun 07 PHP
解析php中curl_multi的应用
Jul 17 PHP
浅析PHP程序设计中的MVC编程思想
Jul 28 PHP
php无限极分类递归排序实现方法
Nov 11 PHP
thinkphp模板继承实例简述
Nov 26 PHP
CodeIgniter与PHP5.6的兼容问题
Jul 16 PHP
php无限分类使用concat如何实现
Nov 05 PHP
PHP cookie与session会话基本用法实例分析
Nov 18 PHP
php操作redis常见方法示例【key与value操作】
Apr 14 PHP
tp5.1 框架查询表达式用法详解
May 25 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中通过ADODB库实现调用Access数据库之修正版本
2006/12/31 PHP
JavaScript与函数式编程解释
2007/04/27 Javascript
List the UTC Time on a Computer
2007/06/11 Javascript
一个网马的tips实现分析
2010/11/28 Javascript
script标签的 charset 属性使用说明
2010/12/04 Javascript
玩转jQuery按钮 请告诉我你最喜欢哪些?
2012/01/08 Javascript
没有document.getElementByName方法
2013/08/19 Javascript
jQuery获得页面元素的绝对/相对位置即绝对X,Y坐标
2014/03/06 Javascript
js 获取浏览器版本以此来调整CSS的样式
2014/06/03 Javascript
深入理解JavaScript系列(30):设计模式之外观模式详解
2015/03/03 Javascript
jquery实现简洁文件上传表单样式
2015/11/02 Javascript
详解JavaScript逻辑And运算符
2015/12/04 Javascript
jQuery的实例及必知重要的jQuery选择器详解
2016/05/20 Javascript
jquery常用的12个小功能
2016/07/22 Javascript
js制作网站首页图片轮播特效代码
2016/08/30 Javascript
jQuery Validate验证表单时多个name相同的元素只验证第一个的解决方法
2016/12/24 Javascript
Angular使用ng-messages与PHP进行表单数据验证
2016/12/28 Javascript
走进AngularJs之过滤器(filter)详解
2017/02/17 Javascript
Vue.js手风琴菜单组件开发实例
2017/05/16 Javascript
js学习总结之DOM2兼容处理顺序问题的解决方法
2017/07/27 Javascript
JS弹窗 JS弹出DIV并使整个页面背景变暗功能的实现代码
2018/04/21 Javascript
使用Three.js实现太阳系八大行星的自转公转示例代码
2019/04/09 Javascript
ES6 Generator函数的应用实例分析
2019/06/26 Javascript
[03:06]3分钟带你回顾DOTA2完美盛典&完美大师赛
2017/12/06 DOTA
python处理中文编码和判断编码示例
2014/02/26 Python
Python使用MySQLdb for Python操作数据库教程
2014/10/11 Python
详细讲解Python中的文件I/O操作
2015/05/24 Python
Python的pygame安装教程详解
2020/02/10 Python
Python+Django+MySQL实现基于Web版的增删改查的示例代码
2020/05/13 Python
python绘图pyecharts+pandas的使用详解
2020/12/13 Python
html5定位获取当前位置并在百度地图上显示
2014/08/22 HTML / CSS
入党自我鉴定范文
2013/10/04 职场文书
2013的个人自我评价
2013/12/26 职场文书
第二批党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
新闻稿格式范文
2015/07/18 职场文书
Java面试题冲刺第十九天--数据库(4)
2021/08/07 Java/Android