+
95
-

回答

1:$_POST可以获取Content-Type为application/x-www-data-urlencoded和multipart/form-data的情况下的传值。

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

但是$HTTP_RAW_POST_DATA依赖于php.ini文件中对于always_populate_raw_post_data参数的配置,该参数设置为off的情况下,$HTTP_RAW_POST_DATA为null,其次,$HTTP_RAW_POST_DATA已在php5.6版本中废弃,官方建议使用php://input替代$HTTP_RAW_POST_DATA。

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

网友回复

我知道答案,我要回答