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 相关文章推荐
MySQL GBK→UTF-8编码转换
May 24 PHP
用来给图片加水印的PHP类
Apr 09 PHP
php 动态添加记录
Mar 10 PHP
仿AS3实现PHP 事件机制实现代码
Jan 27 PHP
基于PHP的cURL快速入门教程 (小偷采集程序)
Jun 02 PHP
PHP的异常处理类Exception的使用及说明
Jun 13 PHP
PHP笔记之:基于面向对象设计的详解
May 14 PHP
PHP获取php,mysql,apche的版本信息示例代码
Jan 16 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
Mar 23 PHP
WordPress中的shortcode短代码功能使用详解
May 17 PHP
PHP对象相关知识总结
Apr 09 PHP
PHP以json或xml格式返回请求数据的方法
May 31 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 simplexmlElement操作xml的命名空间实现代码
2011/01/04 PHP
php学习笔记之 函数声明(二)
2011/06/09 PHP
第4章 数据处理-php字符串的处理-郑阿奇(续)
2011/07/04 PHP
简单说说PHP优化那些事(经验分享)
2014/11/27 PHP
PHP比较运算符的详细介绍
2015/09/29 PHP
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
简单实现php上传文件功能
2017/09/21 PHP
thinkphp5.1框架模板布局与模板继承用法分析
2019/07/19 PHP
实现laravel 插入操作日志到数据库的方法
2019/10/11 PHP
js脚本学习 比较实用的基础
2006/09/07 Javascript
如何在Web页面上直接打开、编辑、创建Office文档
2007/03/12 Javascript
JavaScript的面向对象方法以及差别
2008/03/31 Javascript
jQuery页面图片伴随滚动条逐渐显示的小例子
2013/03/21 Javascript
js钢琴按钮波浪式图片排列效果代码分享
2015/08/26 Javascript
使用jquery插件qrcode生成二维码
2015/10/22 Javascript
JavaScript实现输入框(密码框)出现提示语
2016/01/12 Javascript
Javascript 6里的4个新语法
2016/08/25 Javascript
微信小程序 实现拖拽事件监听实例详解
2016/11/16 Javascript
实例分析浏览器中“JavaScript解析器”的工作原理
2016/12/12 Javascript
AngularJS服务service用法总结
2016/12/13 Javascript
JavaScript注册时密码强度校验代码
2017/06/30 Javascript
Node.js五大应用性能技巧小结(必须收藏)
2017/08/09 Javascript
[02:16]深扒TI7聊天轮盘语音出处2
2017/05/11 DOTA
Python Socket实现简单TCP Server/client功能示例
2017/08/05 Python
Python类的继承和多态代码详解
2017/12/27 Python
python将回车作为输入内容的实例
2018/06/23 Python
详解python中init方法和随机数方法
2019/03/13 Python
在Python中使用filter去除列表中值为假及空字符串的例子
2019/11/18 Python
美国班级戒指、帽子和礼服、毕业产品、年鉴:Balfour
2018/11/01 全球购物
2014植树节活动总结
2014/03/11 职场文书
争当四好少年演讲稿
2014/09/13 职场文书
县委常委班子专题民主生活会查摆问题及整改措施
2014/09/27 职场文书
个人租房协议书
2014/11/28 职场文书
三年级学生期末评语
2014/12/26 职场文书
职场:企业印章管理制度(模板)
2019/10/18 职场文书
Python 的 sum() Pythonic 的求和方法详细
2021/10/16 Python