PHP获取POST数据的几种方法汇总


Posted in PHP onMarch 03, 2015

一、PHP获取POST数据的几种方法

方法1、最常见的方法是:$_POST['fieldname'];

说明:只能接收Content-Type: application/x-www-form-urlencoded提交的数据
解释:也就是表单POST过来的数据

方法2、file_get_contents("php://input");

说明:
允许读取 POST 的原始数据。
和 $HTTP_RAW_POST_DATA 比起来,它给内存带来的压力较小,并且不需要任何特殊的 php.ini 设置。
php://input 不能用于 enctype="multipart/form-data"。
解释:
对于未指定 Content-Type 的POST数据,则可以使用file_get_contents(“php://input”);来获取原始数据。
事实上,用PHP接收POST的任何数据都可以使用本方法。而不用考虑Content-Type,包括二进制文件流也可以。
所以用方法二是最保险的方法

方法3、$GLOBALS['HTTP_RAW_POST_DATA'];

说明:
总是产生 $HTTP_RAW_POST_DATA  变量包含有原始的 POST 数据。
此变量仅在碰到未识别 MIME 类型的数据时产生。
$HTTP_RAW_POST_DATA  对于 enctype="multipart/form-data"  表单数据不可用
如果post过来的数据不是PHP能够识别的,可以用 $GLOBALS['HTTP_RAW_POST_DATA']来接收,
比如 text/xml 或者 soap 等等
解释:
$GLOBALS['HTTP_RAW_POST_DATA']存放的是POST过来的原始数据。
$_POST或$_REQUEST存放的是 PHP以key=>value的形式格式化以后的数据。
但$GLOBALS['HTTP_RAW_POST_DATA']中是否保存POST过来的数据取决于centent-Type的设置,即POST数据时 必须显式示指明Content-Type: application/x-www-form-urlencoded,POST的数据才会存放到 $GLOBALS['HTTP_RAW_POST_DATA']中

二、演示

1、PHP 如何获取POST过来的XML数据和解析XML数据

比如我们在开发微信企业号时,如何处理用户回复过来的数据呢?
文档:http://qydev.weixin.qq.com/wiki/index.php?title=%E6%8E%A5%E6%94%B6%E6%99%AE%E9%80%9A%E6%B6%88%E6%81%AF
首先查阅文档,可知道:启用开发模式后,当用户给应用回复信息时,微信服务端会POST一串XML数据到已验证的回调URL

假设该URL为 http://www.xxx.com
Http请求方式: POST
http://www.xxx.com/?msg_signature=ASDFQWEXZCVAQFASDFASDFSS×tamp=13500001234&nonce=123412323

POST的XML内容为:

<xml>

   <ToUserName><![CDATA[toUser]]></ToUserName>

   <FromUserName><![CDATA[fromUser]]></FromUserName> 

   <CreateTime>1348831860</CreateTime>

   <MsgType><![CDATA[text]]></MsgType>

   <Content><![CDATA[this is a test]]></Content>

   <MsgId>1234567890123456</MsgId>

   <AgentID>1</AgentID>

</xml>

那么怎么接收这段内容呃?
这时就可以用到:方法2(file_get_contents("php://input"))、方法3($GLOBALS['HTTP_RAW_POST_DATA'])

方法2(file_get_contents("php://input")):

$input = file_get_contents("php://input"); //接收POST数据

$xml = simplexml_load_string($input); //提取POST数据为simplexml对象

var_dump($xml);

方法3($GLOBALS['HTTP_RAW_POST_DATA'])

$input = $GLOBALS['HTTP_RAW_POST_DATA'];

libxml_disable_entity_loader(true);

$xml = simplexml_load_string($input, 'SimpleXMLElement', LIBXML_NOCDATA);

var_dump($xml);
PHP 相关文章推荐
用windows下编译过的eAccelerator for PHP 5.1.6实现php加速的使用方法
Sep 30 PHP
php 信息采集程序代码
Mar 17 PHP
防止用户利用PHP代码DOS造成用光网络带宽
Mar 01 PHP
深入理解PHP几个算法:PHP冒泡、PHP二分法、PHP求素数、PHP乘法表
Jun 06 PHP
PHP在引号前面添加反斜杠(PHP去除反斜杠)
Sep 28 PHP
ThinkPHP表单自动提交验证实例教程
Jul 18 PHP
PHP图片处理之使用imagecopyresampled函数实现图片缩放例子
Nov 19 PHP
PHP Oauth授权和本地加密实现方法
Aug 12 PHP
PHP基于回溯算法解决n皇后问题的方法示例
Nov 07 PHP
ThinkPHP5.1框架数据库链接和增删改查操作示例
Aug 03 PHP
php设计模式之迭代器模式实例分析【星际争霸游戏案例】
Apr 07 PHP
PHP如何获取Cookie并实现模拟登录
Jul 16 PHP
php函数实现判断是否移动端访问
Mar 03 #PHP
php中instanceof 与 is_a()区别分析
Mar 03 #PHP
PHP中大于2038年时间戳的问题处理方案
Mar 03 #PHP
ecshop 2.72如何修改后台访问地址
Mar 03 #PHP
PHP自带ZIP压缩、解压缩类ZipArchiv使用指南
Mar 03 #PHP
ecshop后台编辑器替换成ueditor编辑器
Mar 03 #PHP
php使用curl出现Expect:100-continue解决方法
Mar 03 #PHP
You might like
php读取30天之内的根据算法排序的代码
2008/04/06 PHP
推荐40个非常优秀的jQuery插件和教程【系列三】
2011/11/09 Javascript
解决checkbox的attr(checked)一直为undefined问题
2014/06/16 Javascript
javascript表单控件实例讲解
2016/09/13 Javascript
AngularJS中$watch和$timeout的使用示例
2016/09/20 Javascript
详解JavaScript 中getElementsByName在IE中的注意事项
2017/02/21 Javascript
jQuery事件_动力节点Java学院整理
2017/07/05 jQuery
vue项目中使用lib-flexible解决移动端适配的问题解决
2018/08/23 Javascript
详解ES6 export default 和 import语句中的解构赋值
2019/05/28 Javascript
Vue指令之 v-cloak、v-text、v-html实例详解
2019/08/08 Javascript
json_decode 索引为数字时自动排序问题解决方法
2020/03/28 Javascript
解决vue组件没显示,没起作用,没报错,但该显示的组件没显示问题
2020/09/02 Javascript
vue-cli3项目配置eslint代码规范的完整步骤
2020/09/10 Javascript
[06:35]2014DOTA2国际邀请赛 老男孩梦圆西雅图中国军团世界最强
2014/07/22 DOTA
[38:23]完美世界DOTA2联赛循环赛 FTD vs PXG BO2第二场 11.01
2020/11/02 DOTA
Python将多个excel表格合并为一个表格
2021/02/22 Python
Python实现计算长方形面积(带参数函数demo)
2020/01/18 Python
在keras中获取某一层上的feature map实例
2020/01/24 Python
Python中常用的高阶函数实例详解
2020/02/21 Python
Keras loss函数剖析
2020/07/06 Python
HTML5实现动画效果的方式汇总
2016/02/29 HTML / CSS
将"引用"作为函数返回值类型的格式、好处和需要遵守的规则
2016/02/09 面试题
体育教育个人自荐信范文
2013/12/01 职场文书
技校生自我鉴定
2013/12/08 职场文书
儿媳婚宴答谢词
2014/01/14 职场文书
冰淇淋店的创业计划书
2014/02/07 职场文书
聚美优品恶搞广告词
2014/03/14 职场文书
月度优秀员工获奖感言
2014/08/16 职场文书
推广普通话共筑中国梦演讲稿
2014/09/21 职场文书
2014年乡镇民政工作总结
2014/12/02 职场文书
表扬稿范文
2015/01/17 职场文书
英文感谢信范文
2015/01/21 职场文书
2015年团支部工作总结
2015/04/03 职场文书
2015年乡镇环保工作总结
2015/04/22 职场文书
党章学习心得体会2016
2016/01/14 职场文书
礼仪培训心得体会
2016/01/22 职场文书