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
Dec 14 PHP
PHP __autoload()方法真的影响性能吗?
Mar 30 PHP
php中使用preg_match_all匹配文章中的图片
Feb 06 PHP
PHP实现的交通银行网银在线支付接口ECSHOP插件和使用例子
May 10 PHP
ThinkPHP里用U方法调用js文件实例
Jun 18 PHP
PHP多态代码实例
Jun 26 PHP
php通过淘宝API查询IP地址归属等信息
Dec 25 PHP
php函数传值的引用传递注意事项分析
Jun 25 PHP
PHP基于Closure类创建匿名函数的方法详解
Aug 17 PHP
PHP文件系统管理(实例讲解)
Sep 19 PHP
PHP bin2hex()函数基础实例讲解
Feb 11 PHP
Yii框架组件的事件机制原理与用法分析
Apr 07 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
模拟OICQ的实现思路和核心程序(三)
2006/10/09 PHP
php cache类代码(php数据缓存类)
2010/04/15 PHP
php绘图之生成饼状图的方法
2015/01/24 PHP
php发送邮件的问题详解
2015/06/22 PHP
优化WordPress的Google字体以加速国内服务器上的运行
2015/11/24 PHP
PHP编写daemon process详解及实例代码
2016/09/30 PHP
PHP curl批处理及多请求并发实现方法分析
2018/08/15 PHP
JQuery 学习笔记 选择器之三
2009/07/23 Javascript
js字符串操作方法实例分析
2015/05/06 Javascript
20分钟轻松创建自己的Bootstrap站点
2016/05/12 Javascript
微信小程序 后台https域名绑定和免费的https证书申请详解
2016/11/10 Javascript
canvas绘制环形进度条
2017/02/23 Javascript
mockjs,json-server一起搭建前端通用的数据模拟框架教程
2017/12/18 Javascript
vue中动态select的使用方法示例
2019/10/28 Javascript
解决vue项目 build之后资源文件找不到的问题
2020/09/12 Javascript
js实现滚动条自动滚动
2020/12/13 Javascript
[01:23]一分钟告诉你 DOTA2为什么叫信仰2
2014/06/20 DOTA
[01:30:55]VG vs Mineski Supermajor 败者组 BO3 第三场 6.6
2018/06/07 DOTA
python基础教程之udp端口扫描
2014/02/10 Python
Python中用post、get方式提交数据的方法示例
2017/09/22 Python
python类的方法属性与方法属性的动态绑定代码详解
2017/12/27 Python
Numpy中stack(),hstack(),vstack()函数用法介绍及实例
2018/01/09 Python
python删除文件夹下相同文件和无法打开的图片
2019/07/16 Python
小 200 行 Python 代码制作一个换脸程序
2020/05/12 Python
解决TensorFlow程序无限制占用GPU的方法
2020/06/30 Python
伦敦鲜花递送:Flower Station
2021/02/03 全球购物
金士达面试非笔试
2012/03/14 面试题
计算机专业个人简短的自我评价
2013/10/23 职场文书
大学活动总结范文
2014/04/29 职场文书
2014办公室年度工作总结
2014/12/09 职场文书
大学生违纪检讨书范文
2015/05/07 职场文书
2015年女工委工作总结
2015/07/27 职场文书
2015年社区重阳节活动总结
2015/07/30 职场文书
搞笑欢迎词大全
2015/09/30 职场文书
go select编译期的优化处理逻辑使用场景分析
2021/06/28 Golang
JavaScript与JQuery框架基础入门教程
2021/07/15 Javascript