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在字符串中查找另一个字符串
Nov 19 PHP
PHP模块 Memcached功能多于Memcache
Jun 14 PHP
php中一个完整表单处理实现代码
Nov 10 PHP
php数组相加 array(“a”)+array(“b”)结果还是array(“a”)
Sep 19 PHP
破解.net程序(dll文件)编译和反编译方法
Jan 31 PHP
解析PHP中ob_start()函数的用法
Jun 24 PHP
PHP中把错误日志保存在系统日志中(Windows系统)
Jun 23 PHP
PHP输入流php://input实例讲解
Dec 22 PHP
php版微信公众平台回复中文出现乱码问题的解决方法
Sep 22 PHP
php 判断字符串编码是utf-8 或gb2312实例
Nov 01 PHP
laravel自定义分页效果
Jul 23 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
Dec 21 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函数)
2006/10/09 PHP
PHP syntax error, unexpected $end 错误的一种原因及解决
2008/10/25 PHP
火车头discuz6.1 完美采集的php接口文件
2009/09/13 PHP
PHP数据类型之布尔型的介绍
2013/04/28 PHP
ThinkPHP之R方法实例详解
2014/06/20 PHP
php实现的操作excel类详解
2016/01/15 PHP
Yii2下session跨域名共存的解决方案
2017/02/04 PHP
放弃用你的InnerHTML来输出HTML吧 jQuery Tmpl不详细讲解
2013/04/20 Javascript
js获取本机操作系统类型的两种方法
2015/12/19 Javascript
js实现select二级联动下拉菜单
2020/04/17 Javascript
js内置对象处理_打印学生成绩单的简单实现
2016/09/24 Javascript
Jquery针对tr td的一些实用操作方法(必看篇)
2016/10/05 Javascript
Zepto实现密码的隐藏/显示
2017/04/07 Javascript
JS实现带导航城市列表以及输入搜索功能
2018/01/04 Javascript
Vue完整项目构建(进阶篇)
2018/02/10 Javascript
JS实现键值对遍历json数组功能示例
2018/05/30 Javascript
微信开发之微信jssdk录音功能开发示例
2018/10/22 Javascript
react-native滑动吸顶效果的实现过程
2019/06/03 Javascript
jquery实现自定义树形表格的方法【自定义树形结构table】
2019/07/12 jQuery
在vue中使用echarts(折线图的demo,markline用法)
2020/07/20 Javascript
Python模块包中__init__.py文件功能分析
2016/06/14 Python
python中os模块详解
2016/10/14 Python
你应该知道的python列表去重方法
2017/01/17 Python
零基础使用Python读写处理Excel表格的方法
2019/05/02 Python
用scikit-learn和pandas学习线性回归的方法
2019/06/21 Python
python字符串切割:str.split()与re.split()的对比分析
2019/07/16 Python
python计算二维矩形IOU实例
2020/01/18 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
2020/02/28 Python
纯CSS和jQuery实现的在页面顶部显示的进度条效果2例(仿手机浏览器进度条效果)
2014/04/16 HTML / CSS
亚马逊印度站:Amazon.in
2017/10/15 全球购物
internal修饰符起什么作用
2013/12/16 面试题
医药学专业大学生职业生涯规划书论文
2014/01/21 职场文书
2015新年寄语大全
2014/12/08 职场文书
广播体操比赛主持词
2015/06/29 职场文书
小学运动会前导词
2015/07/20 职场文书
CentOS 7安装mysql5.7使用XtraBackUp备份工具命令详解
2022/04/12 MySQL