$POST 、$HTTP_RAW_POST_DATA、php://input三者之间的差别

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

问题:    $HTTP_RAW_POST_DATA  == $_POST  吗?  --->答案是为否。







个人理解总结是这么玩的:

1:$POST我们经常使用的就不用介绍了吧

2:$GLOBALS['HTTP_RAW_POST_DATA']:

基本上$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数据。 

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





3:php://input 也能够实现此这个功能:

php://input 同意读取 POST 的原始数据。和 $HTTP_RAW_POST_DATA 比起来,它给内存带来的压力较小,而且不须要不论什么特殊的 php.ini 设置。php://input 不能用于 enctype="multipart/form-data"。

样例:

leyangjun.html

<form action="leyangjun.php" method="post">

  <p>First name: <input type="text" name="fname" /></p>

  <p>Last name: <input type="text" name="lname" /></p>

  <input type="submit" value="Submit" />

</form>





leyangjun.php:

<?

php





echo "<pre>";

print_r($_POST);





$data = file_get_contents('php://input');   //都要解下码

print_r(urldecode($data));

echo "<br>";

print_r(urldecode($GLOBALS['HTTP_RAW_POST_DATA']));

?>

随机推荐

  1. Defender Game 游戏实践(1) 基本游戏场景实现

    在网上看到 郑州|boy 这个博客,里面有几篇文章,记录了其用cocos2d-x这个游戏引擎编写的一个游戏,十分不错,所以这段时间,依样画葫芦,依次学习一下. 由于博主开发的平台是在win32,而且屏 ...

  2. 安卓开发28:自定义View类

    自定义View类 通过自定义View类,可以自定义复杂的,按照自己需求的控件. 一个简单的例子 mainActivity.java 这个里面就是最普通的代码,但是给自定义的控件加上了一个onclick ...

  3. iOS 单元測试之XCTest具体解释(一)

    原创blog,转载请注明出处 blog.csdn.net/hello_hwc 欢迎关注我的iOS-SDK具体解释专栏 http://blog.csdn.net/column/details/huang ...

  4. c# Unicode字符串的解码

    前两天工作中遇到个奇怪的问题,一个unicode字符串(即“\uXXXX”形式)变量,调用HttpUtility.UrlDecode解码过后,还是原样,要么就是乱码状态.无奈之下只能自己写一个解码函数 ...

  5. linux编程进阶书推荐APUE,UNP

    编程进阶这里强烈推荐<unix环境高级编程>(简称APUE)和<unix网络编程>(简称UNP),这两本书可是经典中的经典啊,作 者是大名鼎鼎的 W.Richard Steve ...

  6. UVA12304 2D Geometry 110 in 1! 计算几何

    计算几何: 堆几何模版就能够了. . .. Description Problem E 2D Geometry 110 in 1! This is a collection of 110 (in bi ...

  7. Jquery利用ajax调用asp.net webservice的各种数据类型(总结篇)

    原文:Jquery利用ajax调用asp.net webservice的各种数据类型(总结篇) 老话说的好:好记心不如烂笔头! 本着这原则,我把最近工作中遇到的jquery利用ajax调用web服务的 ...

  8. java使用AES加密解密 AES-128-ECB加密

    java使用AES加密解密 AES-128-ECB加密 import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; impo ...

  9. Codeforces Round #277.5 (Div. 2)---B. BerSU Ball (贪心)

    BerSU Ball time limit per test 1 second memory limit per test 256 megabytes input standard input out ...

  10. zimbra启用SMTP认证并绑定认证登录和发件人

    1. smtp认证    1.1 修改mynetworks        登录zimbra后台-->全局配置-->MTA-->信任网络-->127.0.0.0/8        ...