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发明人谈MVC和网站设计架构 貌似他不支持php用mvc
Jun 04 PHP
PHP判断远程url是否有效的几种方法小结
Oct 08 PHP
php设计模式之观察者模式的应用详解
May 21 PHP
apache配置虚拟主机的方法详解
Jun 17 PHP
php批量更改数据库表前缀实现方法
Oct 26 PHP
PHP获取指定月份第一天和最后一天的方法
Jul 18 PHP
PHP中COOKIES使用示例
Jul 26 PHP
PHP实现简单汉字验证码
Jul 28 PHP
php中switch语句用法详解
Aug 17 PHP
详解PHP的Laravel框架中Eloquent对象关系映射使用
Feb 26 PHP
关于PHP转换超过2038年日期出错的问题解决
Jun 28 PHP
PHP实现文字写入图片功能
Feb 18 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
ThinkPHP控制器间实现相互调用的方法
2014/10/31 PHP
DEDE实现转跳属性文档在模板上调用出转跳地址
2016/11/04 PHP
对YUI扩展的Gird组件 Part-1
2007/03/10 Javascript
图片格式的JavaScript和CSS速查手册
2007/08/20 Javascript
prototype Element学习笔记(篇二)
2008/10/26 Javascript
教你在heroku云平台上部署Node.js应用
2014/07/30 Javascript
jQuery中$this和$(this)的区别介绍(一看就懂)
2015/07/06 Javascript
jQuery实现定时读取分析xml文件的方法
2015/07/16 Javascript
AngularJS  $on、$emit和$broadcast的使用
2016/09/05 Javascript
HTML5 JS压缩图片并获取图片BASE64编码上传
2020/11/16 Javascript
微信小程序 石头剪刀布实例代码
2017/01/04 Javascript
Bootstrap多级菜单的实现代码
2017/05/23 Javascript
React.Js添加与删除onScroll事件的方法详解
2017/11/03 Javascript
浅谈vuepress 踩坑记
2018/04/18 Javascript
npm 更改默认全局路径以及国内镜像的方法
2018/05/16 Javascript
JavaScript惰性求值的一种实现方法示例
2019/01/11 Javascript
js使用文件流下载csv文件的实现方法
2019/07/15 Javascript
JS中getElementsByClassName与classList兼容性问题解决方案分析
2019/08/07 Javascript
vue2.0实现列表数据增加和删除
2020/06/17 Javascript
如何基于jQuery实现五角星评分
2020/09/02 jQuery
python下如何让web元素的生成更简单的分析
2008/07/17 Python
python3+PyQt5实现柱状图
2018/04/24 Python
python 读取Linux服务器上的文件方法
2018/12/27 Python
Python中的支持向量机SVM的使用(附实例代码)
2019/06/26 Python
linux下python中文乱码解决方案详解
2019/08/28 Python
django 做 migrate 时 表已存在的处理方法
2019/08/31 Python
实例讲解利用HTML5 Canvas API操作图形旋转的方法
2016/03/22 HTML / CSS
日本小田急百货官网:Odakyu
2018/07/19 全球购物
微软马来西亚官方网站:Microsoft马来西亚
2019/11/22 全球购物
Made in Design意大利:现代家具、名家灯具和装饰
2020/10/27 全球购物
男方父母婚礼答谢词
2014/01/25 职场文书
药学职务聘任书
2014/03/29 职场文书
护士节策划方案
2014/05/19 职场文书
2014年个人债务授权委托书范本
2014/09/22 职场文书
Java反应式框架Reactor中的Mono和Flux
2021/07/25 Java/Android
mysql5.5中文乱码问题解决的有用方法
2022/05/30 MySQL