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生成静态HTML速度快类库
Mar 18 PHP
php与XML、XSLT、Mysql的结合运用实现代码
Nov 19 PHP
php判断输入不超过mysql的varchar字段的长度范围
Jun 24 PHP
基于php冒泡排序算法的深入理解
Jun 09 PHP
PHP array_multisort() 函数的深入解析
Jun 20 PHP
zend Framework中的Layout(模块化得布局)详解
Jun 28 PHP
php中time()与$_SERVER[REQUEST_TIME]用法区别
Nov 19 PHP
php实现用手机关闭计算机(电脑)的方法
Apr 22 PHP
PHP利用DWZ.CN服务生成短网址
Aug 11 PHP
php连接sftp的作用以及实例代码
Sep 23 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
Nov 25 PHP
Laravel 微信小程序后端实现用户登录的示例代码
Nov 26 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
星际争霸 Starcraft 发展史
2020/03/14 星际争霸
使用Apache的rewrite技术
2006/06/22 PHP
PHP PDO函数库详解
2010/04/27 PHP
详谈PHP程序Laravel 5框架的优化技巧
2016/07/18 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
2017/05/23 PHP
Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
2017/06/30 PHP
关于JS判断图片是否加载完成且获取图片宽度的方法
2013/04/09 Javascript
利用JS来控制键盘的上下左右键(示例代码)
2013/12/14 Javascript
js中的setInterval和setTimeout使用实例
2014/05/09 Javascript
js+html5绘制图片到canvas的方法
2015/06/05 Javascript
javascript检测移动设备横竖屏
2016/05/21 Javascript
js中数组的常用方法小结
2016/12/30 Javascript
canvas实现刮刮卡效果
2017/03/14 Javascript
详解vue模拟加载更多功能(数据追加)
2017/06/23 Javascript
JavaScript截屏功能的实现代码
2017/07/28 Javascript
详解vue 模拟后台数据(加载本地json文件)调试
2017/08/25 Javascript
详解Angular调试技巧之报错404(not found)
2018/01/31 Javascript
如何解决jQuery 和其他JS库的冲突
2020/06/22 jQuery
openlayers4实现点动态扩散
2020/08/17 Javascript
如何将Node.js中的回调转换为Promise
2020/11/10 Javascript
使用Mock.js生成前端测试数据
2020/12/13 Javascript
Python构造自定义方法来美化字典结构输出的示例
2016/06/16 Python
python list排序的两种方法及实例讲解
2017/03/20 Python
给你选择Python语言实现机器学习算法的三大理由
2017/11/15 Python
Python字典底层实现原理详解
2019/12/18 Python
TFRecord格式存储数据与队列读取实例
2020/01/21 Python
可持续未来的时尚基础:Alternative Apparel
2019/05/06 全球购物
香港草莓网:Strawberrynet香港
2019/05/10 全球购物
荷兰鞋类购物网站:Donelli
2019/05/24 全球购物
材料物理专业大学毕业生求职信
2013/10/15 职场文书
生物专业个人自荐信范文
2013/11/29 职场文书
国际贸易专业个人鉴定
2014/02/22 职场文书
乡镇2014法制宣传日活动总结
2014/11/01 职场文书
上下班时间调整通知
2015/04/23 职场文书
终止解除劳动合同证明书
2015/06/17 职场文书
开业庆典嘉宾致辞
2015/08/01 职场文书