php升级版本后的影响5.5->7.1
微信开发中之前常用到$GLOBALS['HTTP_RAW_POST_DATA'] ,但升级后这个参数不见了,导致了一系列错误,
可以用 file_get_contents(
'php://input'
)来代替
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')获取请求数据。