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分页函数
Oct 09 PHP
php录入页面中动态从数据库中提取数据的实现
Oct 09 PHP
用PHP+MySql编写聊天室
Oct 09 PHP
php与php MySQL 之间的关系
Jul 17 PHP
PHP 身份验证方面的函数
Oct 11 PHP
一个好用的PHP验证码类实例分享
Dec 27 PHP
探寻PHP脚本不报错的原因
Jun 12 PHP
php操作memcache缓存方法分享
Jun 03 PHP
php工具型代码之印章抠图
Jul 18 PHP
浅谈Laravel模板实体转义带来的坑
Oct 22 PHP
PHP简单实现图片格式转换(jpg转png,gif转png等)
Oct 30 PHP
laravel添加角色和模糊搜索功能的实现代码
Jun 22 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导出EXCEL快速开发指南--PHPEXCEL的使用详解
2013/06/03 PHP
php实现二进制和文本相互转换的方法
2015/04/18 PHP
PHP-FPM实现性能优化
2016/03/31 PHP
ThinkPHP实现更新数据实例详解(demo)
2016/06/29 PHP
php+MySql实现登录系统与输出浏览者信息功能
2016/07/01 PHP
CodeIgniter整合Smarty的方法详解
2017/08/25 PHP
PHP注释语法规范与命名规范详解篇
2018/01/21 PHP
Firefox下提示illegal character并出现乱码的原因
2010/03/25 Javascript
JavaScript中的this关键字介绍与使用实例
2013/06/21 Javascript
JS远程获取网页源代码实例
2013/09/05 Javascript
javascript模拟地球旋转效果代码实例
2013/12/02 Javascript
javascript中文本框中输入法切换的问题
2013/12/10 Javascript
jquery sortable的拖动方法示例详解
2014/01/16 Javascript
javascript关于继承的用法汇总
2014/12/20 Javascript
JS简单循环遍历json数组的方法
2016/04/22 Javascript
vue2.0模拟锚点的实例
2018/03/14 Javascript
移动端底部导航固定配合vue-router实现组件切换功能
2019/06/13 Javascript
vue实现多级菜单效果
2019/10/19 Javascript
使用js原生实现年份轮播选择效果实例
2021/01/12 Javascript
Python深入学习之内存管理
2014/08/31 Python
python3中获取文件当前绝对路径的两种方法
2018/04/26 Python
python-视频分帧&amp;多帧合成视频实例
2019/12/10 Python
Python查找不限层级Json数据中某个key或者value的路径方式
2020/02/27 Python
详解Python的爬虫框架 Scrapy
2020/08/03 Python
马来西亚网上美容店:Hermo.my
2017/11/25 全球购物
美国在线购买和出售礼品卡网站:EJ Gift Cards
2019/06/09 全球购物
美国优质马术服装购买网站:Breeches.com
2019/12/16 全球购物
德国50岁以上交友网站:Lebensfreunde
2020/03/18 全球购物
人口与计划生育目标管理责任书
2014/07/29 职场文书
村长反四风问题个人对照检查材料
2014/09/21 职场文书
党的群众路线教育实践活动个人对照检查剖析材料
2014/09/23 职场文书
单位租车协议书
2015/01/29 职场文书
React中的Context应用场景分析
2021/06/11 Javascript
Python函数式编程中itertools模块详解
2021/09/15 Python
如何在python中实现ECDSA你知道吗
2021/11/23 Python
Python使用Opencv打开笔记本电脑摄像头报错解问题及解决
2022/06/21 Python