PHP获取原生POST数据

PHP手册中有这样一个全局变量

$HTTP_RAW_POST_DATA — 原生POST数据 但是需要配置php.ini文件等

于是乎又找到了php://input

手册中的说明如下:

php://input 是个可以访问请求的原始数据的只读流。 POST 请求的情况下,最好使用 php://input 来代替 $HTTP_RAW_POST_DATA,因为它不依赖于特定的 php.ini 指令。 而且,这样的情况下 $HTTP_RAW_POST_DATA 默认没有填充, 比激活 always_populate_raw_post_data 潜在需要更少的内存。 enctype="multipart/form-data" 的时候 php://input 是无效的。
 
 Note: php://input 打开的数据流只能读取一次; 数据流不支持 seek 操作。 不过,依赖于 SAPI 的实现,请求体数据被保存的时候, 它可以打开另一个 php://input 数据流并重新读取。 通常情况下,这种情况只是针对 POST 请求,而不是其他请求方式,比如 PUT 或者 PROPFIND。


So easy.

$data = file_get_contents(php://input);

posted @ 2012-12-13 15:23  zhjx922  阅读(423)  评论(0编辑  收藏  举报