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开源一个mvc框架的诞生之Application类input方法