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 相关文章推荐
Windows IIS PHP 5.2 安装与配置方法
Jun 08 PHP
PHP开发中的错误收集,不定期更新。
Feb 03 PHP
PHP跨时区(UTC时间)应用解决方案
Jan 11 PHP
php异常处理使用示例
Feb 25 PHP
几个实用的PHP内置函数使用指南
Nov 27 PHP
php使用Image Magick将PDF文件转换为JPG文件的方法
Apr 01 PHP
php实现微信公众平台账号自定义菜单类
Oct 11 PHP
WordPress中注册菜单与调用菜单的方法详解
Dec 18 PHP
Symfony生成二维码的方法
Feb 04 PHP
浅谈PHP实现大流量下抢购方案
Dec 15 PHP
PDO::rollBack讲解
Jan 29 PHP
php中错误处理操作实例分析
Aug 23 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中ini_set与ini_get用法实例
2014/11/04 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
2017/11/14 PHP
详解PHP素材图片上传、下载功能
2019/04/12 PHP
PHP数组实际占用内存大小原理解析
2020/12/11 PHP
W3C Group的JavaScript1.8 新特性介绍
2009/05/19 Javascript
Jquery知识点三 jquery表单对象操作
2011/01/17 Javascript
编写可维护面向对象的JavaScript代码[翻译]
2011/02/12 Javascript
jquery 操作DOM的基本用法分享
2012/04/05 Javascript
js实现滑动触屏事件监听的方法
2015/05/05 Javascript
JavaScript中的Math.E属性使用详解
2015/06/12 Javascript
辨析JavaScript中的Undefined类型与null类型
2016/05/26 Javascript
javascript cookie用法基础教程(概念,设置,读取及删除)
2016/09/20 Javascript
jQuery选择器中的特殊符号处理方法
2017/09/08 jQuery
mui框架移动开发初体验详解
2017/10/11 Javascript
vue axios请求频繁时取消上一次请求的方法
2018/11/10 Javascript
node.js中事件触发器events的使用方法实例分析
2019/11/23 Javascript
viewer.js一个强大的基于jQuery的图像查看插件(支持旋转、缩放)
2020/04/01 jQuery
vue a标签点击实现赋值方式
2020/09/07 Javascript
python的三目运算符和not in运算符使用示例
2014/03/03 Python
Python多线程编程(二):启动线程的两种方法
2015/04/05 Python
Python isinstance函数介绍
2015/04/14 Python
pygame学习笔记(1):矩形、圆型画图实例
2015/04/15 Python
简单介绍Python中利用生成器实现的并发编程
2015/05/04 Python
python实现基本进制转换的方法
2015/07/11 Python
一行Python代码过滤标点符号等特殊字符
2019/08/12 Python
Pandas实现DataFrame按行求百分数(比例数)
2019/12/27 Python
python时间日期操作方法实例小结
2020/02/06 Python
用Python进行websocket接口测试
2020/10/16 Python
英国领先的酒类网上商城:TheDrinkShop
2017/03/16 全球购物
无谷物狗粮:Pooch & Mutt
2018/05/23 全球购物
公司会议策划方案
2014/05/17 职场文书
观看信仰心得体会
2014/09/04 职场文书
骨干教师个人总结
2015/02/11 职场文书
2015年社区平安建设工作总结
2015/05/13 职场文书
运动会广播稿20字
2015/08/19 职场文书
如何使用分区处理MySQL的亿级数据优化
2021/06/18 MySQL