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数组函数序列之array_sum() - 计算数组元素值之和
Oct 29 PHP
PHP字符串的编码问题的详细介绍
Apr 27 PHP
基于Zend的Captcha机制的应用
May 02 PHP
PHP获取MySql新增记录ID值的3种方法
Jun 24 PHP
php验证session无效的解决方法
Nov 04 PHP
php运行时动态创建函数的方法
Mar 16 PHP
PHP的Yii框架中使用数据库的配置和SQL操作实例教程
Mar 17 PHP
CI框架简单邮件发送类实例
May 18 PHP
学习PHP session的传递方式
Jun 15 PHP
PHP实现QQ快速登录的方法
Sep 28 PHP
php删除数组指定元素实现代码
May 03 PHP
thinkphp5 URL和路由的功能详解与实例
Dec 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
PHP修改session_id示例代码
2014/01/08 PHP
destoon各类调用汇总
2014/06/20 PHP
Smarty变量用法详解
2016/05/11 PHP
php+mysql实现简单登录注册修改密码网页
2016/11/30 PHP
老生常谈文本文件和二进制文件的区别
2017/02/27 PHP
Laravel实现定时任务的示例代码
2017/08/10 PHP
php用xpath解析html的代码实例讲解
2019/02/14 PHP
javascript日期格式化方法小结
2015/12/17 Javascript
javascript中加var和不加var的区别 你真的懂吗
2016/01/06 Javascript
14 个折磨人的 JavaScript 面试题
2016/08/08 Javascript
PHP捕捉异常中断的方法
2016/10/24 Javascript
微信小程序 toast 详解及实例代码
2016/11/09 Javascript
有关JS中的0,null,undefined,[],{},'''''''',false之间的关系
2017/02/14 Javascript
JS开发中百度地图+城市联动实现实时触发查询地址功能
2017/04/13 Javascript
javascript定时器取消定时器及优化方法
2017/07/08 Javascript
JS switch判断 三目运算 while 及 属性操作代码
2017/09/03 Javascript
JS实现的简单表单验证功能示例
2017/10/13 Javascript
vue基于两个计算属性实现选中和全选功能示例
2019/02/08 Javascript
vuejs移动端实现div拖拽移动
2019/07/25 Javascript
uni-app实现点赞评论功能
2019/11/25 Javascript
Vue基于iview实现登录密码的显示与隐藏功能
2020/03/06 Javascript
python二分法实现实例
2013/11/21 Python
python实现闹钟定时播放音乐功能
2018/01/25 Python
Python Numpy 数组的初始化和基本操作
2018/03/13 Python
浅谈pycharm的xmx和xms设置方法
2018/12/03 Python
python django框架中使用FastDFS分布式文件系统的安装方法
2019/06/10 Python
matplotlib 生成的图像中无法显示中文字符的解决方法
2020/06/10 Python
五款漂亮的纯CSS3动画按钮的实例教程
2014/11/21 HTML / CSS
基于CSS3实现图片模糊过滤效果
2015/11/19 HTML / CSS
社团文化节策划书
2014/02/01 职场文书
趣味运动会活动方案
2014/02/12 职场文书
经济类毕业生求职信
2014/06/26 职场文书
中共广东省委常委会党的群众路线教育实践活动整改方案
2014/09/23 职场文书
万能检讨书开头与结尾怎么写
2015/02/17 职场文书
排查并解决MySQL生产库内存使用率高的报警
2022/04/11 MySQL
python 镜像环境搭建总结
2022/09/23 Python