php中获取数据 php://input$_POST与$GLOBALS['HTTP_RAW_POST_DATA']三者的区别

Posted 纭卿殇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php中获取数据 php://input$_POST与$GLOBALS['HTTP_RAW_POST_DATA']三者的区别相关的知识,希望对你有一定的参考价值。

$_POST

只有Coentent-Type的值为application/x-www.form-urlencoded和multipart/form-data两种类型时,$_POST才能获取到数据。

 

$GLOBALS[‘HTTP_RAW_POST_DATA‘]

如果php无法识别Coentent-Type类型,也就无法获取请求数据,这个时候,可以用$GLOBALS[‘HTTP_RAW_POST_DATA‘]来获取。

 

php://input

1. 从使用结果看,php://input与$GLOBALS[‘HTTP_RAW_POST_DATA‘]的功能是一样的,但是,php://input需要的内存比较小,并且它不受 php.ini 配置文件的限制。

2. 如果Coentent-Type的类型为multipart/form-data,使用php://input和$GLOBALS[‘HTTP_RAW_POST_DATA‘]是获取不到数据的,除此之外,php://input都能获取到数据。

3. 仅当Coentent-Type的类型为application/x-www.form-urlencoded时,使用php://input和$_POST获取到的数据才是一致的。

4. 使用方式:使用file_get_contents(‘php://input‘)获取请求数据。

 

以上是关于php中获取数据 php://input$_POST与$GLOBALS['HTTP_RAW_POST_DATA']三者的区别的主要内容,如果未能解决你的问题,请参考以下文章

PHP输入流 php://input 相关

php开源一个mvc框架的诞生之Application类input方法

PHP输入流php://input介绍

PHP输入流php://input介绍

php 将'php:// input'数据合并到$ _REQUEST

php中$_POST接收不到参数问题