PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析


Posted in PHP onJuly 03, 2017

本文分析了PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别。分享给大家供大家参考,具体如下:

$_POST:通过 HTTP POST 方法传递的变量组成的数组。是自动全局变量。
$GLOBALS['HTTP_RAW_POST_DATA'] :总是产生 $HTTP_RAW_POST_DATA 变量包含有原始的 POST 数据。此变量仅在碰到未识别 MIME 类型的数据时产生。$HTTP_RAW_POST_DATA 对于 enctype="multipart/form-data" 表单数据不可用。

也就是说基本上$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST是一样的。
但是如果post过来的数据不是PHP能够识别的,你可以用 $GLOBALS['HTTP_RAW_POST_DATA']来接收,比如 text/xml 或者 soap 等等。

补充说明:PHP默认识别的数据类型是application/x-www.form-urlencoded标准的数据类型。

这是手册里写的:

总是产生变量包含有原始的 POST 数据。否则,此变量仅在碰到未识别 MIME 类型的数据时产生。不过,访问原始 POST 数据的更好方法是 php://input。$HTTP_RAW_POST_DATA 对于 enctype="multipart/form-data" 表单数据不可用。

问题: $HTTP_RAW_POST_DATA == $_POST 吗?

照手册所写 ,答案应该就为否。
假如不一样的话,他们的区别是什么呢?

我知道答案了,如下:

The RAW / uninterpreted HTTP POst information can be accessed with:
$GLOBALS['HTTP_RAW_POST_DATA']
This is useful in cases where the post Content-Type is not something PHP understands (such as text/xml).

也就是说,基本上$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST是一样的。但是如果post过来的数据不是PHP能够识别的,你可以用 $GLOBALS['HTTP_RAW_POST_DATA']来接收,比如 text/xml 或者 soap 等等

PHP默认识别的数据类型是application/x-www.form-urlencoded标准的数据类型

用Content-Type=text/xml 类型,提交一个xml文档内容给了php server,要怎么获得这个POST数据。

The RAW / uninterpreted HTTP POST information can be accessed with: $GLOBALS['HTTP_RAW_POST_DATA'] This is useful in cases where the post Content-Type is not something PHP understands (such as text/xml).

由于PHP默认只识别application/x-www.form-urlencoded标准的数据类型,因此,对型如text/xml的内容无法解析为$_POST数组,故保留原型,交给$GLOBALS['HTTP_RAW_POST_DATA'] 来接收。

另外还有一项 php://input 也可以实现此这个功能

php://input 允许读取 POST 的原始数据。和 $HTTP_RAW_POST_DATA 比起来,它给内存带来的压力较小,并且不需要任何特殊的 php.ini 设置。php://input 不能用于 enctype="multipart/form-data"。

应用:

a.htm:

<form action="post.php" method="post">
<input type="text" name="user">
<input type="password" name="password">
<input type="submit">
</form>

post.php:

<? echo file_get_contents("php://input"); ?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
不错的一篇面向对象的PHP开发模式(简写版)
Mar 15 PHP
php中使用$_REQUEST需要注意的一个问题
May 02 PHP
php使用strtotime和date函数判断日期是否有效代码分享
Dec 25 PHP
基于GD2图形库的PHP生成图片缩略图类代码分享
Feb 08 PHP
PHP转盘抽奖接口实例
Feb 09 PHP
给WordPress中的留言加上楼层号的PHP代码实例
Dec 14 PHP
PHP is_array() 检测变量是否是数组的实现方法
Jun 13 PHP
PHP读书笔记整理_结构语句详解
Jul 01 PHP
PHP PDOStatement::debugDumpParams讲解
Jan 30 PHP
tp5框架的增删改查操作示例
Oct 31 PHP
php 命名空间(namespace)原理与用法实例小结
Nov 13 PHP
php的RSA加密解密算法原理与用法分析
Jan 23 PHP
PHP不使用内置函数实现字符串转整型的方法示例
Jul 03 #PHP
利用PHP判断是否是连乘数字串的方法示例
Jul 03 #PHP
使用Zttp简化Guzzle 调用
Jul 02 #PHP
详解php几行代码实现CSV格式文件输出
Jul 01 #PHP
Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
Jun 30 #PHP
详解如何在云服务器上部署Laravel
Jun 30 #PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
Jun 30 #PHP
You might like
php下MYSQL limit的优化
2008/01/10 PHP
有关 PHP 和 MySQL 时区的一点总结
2008/03/26 PHP
Nginx服务器上安装并配置PHPMyAdmin的教程
2015/08/18 PHP
Symfony2学习笔记之系统路由详解
2016/03/17 PHP
PHP levenshtein()函数用法讲解
2019/03/08 PHP
javascript 循环调用示例介绍
2013/11/20 Javascript
JSON中双引号的轮回使用过程中一定要小心
2014/03/05 Javascript
jQuery拖动div、移动div、弹出层实现原理及示例
2014/04/08 Javascript
JS函数重载的解决方案
2014/05/13 Javascript
javascript几个易错点记录
2014/11/26 Javascript
JS截取与分割字符串常用技巧总结
2015/11/10 Javascript
跟我学习javascript的严格模式
2015/11/16 Javascript
JS实现环形进度条(从0到100%)效果
2016/07/05 Javascript
基于angular中的重要指令详解($eval,$parse和$compile)
2016/10/21 Javascript
基于bootstrap-datetimepicker.js不支持IE8的快速解决方法
2016/11/07 Javascript
jQuery用FormData实现文件上传的方法
2016/11/21 Javascript
Vue内容分发slot(全面解析)
2017/08/19 Javascript
jquery插件开发之选项卡制作详解
2017/08/30 jQuery
js实现HTML中Select二级联动的实例
2018/01/05 Javascript
jQuery实现左右两个列表框的内容相互移动功能示例
2019/01/27 jQuery
Python中字典和JSON互转操作实例
2015/01/19 Python
Python爬虫使用脚本登录Github并查看信息
2018/07/16 Python
django中上传图片分页三级联动效果的实现代码
2019/08/30 Python
如何更改 pandas dataframe 中两列的位置
2019/12/27 Python
python:解析requests返回的response(json格式)说明
2020/04/30 Python
python ETL工具 pyetl
2020/06/07 Python
Python生成并下载文件后端代码实例
2020/08/31 Python
你不知道的5个HTML5新功能
2016/06/28 HTML / CSS
什么是Smarty变量操作符?如何使用Smarty变量操作符
2014/07/18 面试题
介绍一下linux的文件权限
2014/07/20 面试题
高中英语教学反思
2014/02/04 职场文书
三八节主持词
2014/03/17 职场文书
《三个小伙伴》教学反思
2014/04/11 职场文书
售后服务承诺书模板
2014/05/21 职场文书
龙潭大峡谷导游词
2015/02/10 职场文书
简短的人生哲理(38句)
2019/08/13 职场文书