最近做了一个程序,部署在 SAE 上,环境是 PHP 5.6。
今天看了一下 SAE 上的日志,debug 中上万条日志提示:
PHP Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set 'always_populate_raw_post_data' to '-1' in php.ini and use the php://input stream instead.
因为我这个程序是和微信公众号对接的,微信会把消息体以 XML 的结构 POST 到我这边,所以我现在使用 file_get_contents('php://input')
来获取消息。
不知道是不是我对这条 debug 理解有问题,说的应该是推荐用 php://input
吧?但怎么还每一次都有警告呢?
难道 5.6 之后不推荐这个方式了?那用什么方式来代替呢?谢谢~
1
xbonline 2015-08-10 16:15:23 +08:00
To avoid this warning set 'always_populate_raw_post_data' to '-1' in php.ini and use the php://input
stream instead. 已經說得很清楚了嘛 |
2
honkew 2015-08-10 16:15:57 +08:00
为什么不用$_POST呢,这是取信息流吧,$HTTP_RAW_POST_DATA全局变量应该能取到
|
3
iugo 2015-08-10 16:20:06 +08:00
最近在做微信开发的时候用到. 官方文档说建议使用 php://input.
在 PHP 7 中, 会完全摒弃 HTTP_RAW_POST_DATA. 后者会消耗更多的资源, 并且功能可以被完全取代, 所以取消了. 在 ini 中的配置项也失效. |
4
abelyao OP |
5
abelyao OP @iugo 那我的理解应该木有错啊,用 php://input 是对的,可是在 SAE 的环境中也没办法修改 php.ini 来去掉这个警告…
|
6
honkew 2015-08-10 16:38:27 +08:00
能正常使用 直接屏蔽掉这个错误就好
@file_get_contents('php://input'); |
8
gongpeione 2015-08-10 16:40:26 +08:00
ini_set('always_populate_raw_post_data', '-1'); 用这个?
|
9
abelyao OP |
10
msxcms 2015-08-10 19:10:06 +08:00
扔掉 SAE
|
11
realpg 2015-08-10 19:37:42 +08:00
|