最近在做微信公众平台的开发时,遇到了这种情况,在服务器端对接微信接口时接收用户在客户端发送的时,使用的是$GLOBALS超全局变量而不是$_POST全局变量来接受传来的HTTP_RAW_POST_DAT数据,这是为什么呢?
答案如下:
$GLOBALS :引用全局作用域中可用的全部变量
$_POST :HTTP POST 变量,是自动全局数组
$GLOBALS['HTTP_RAW_POST_DATA'] :总是产生 $HTTP_RAW_POST_DATA 变量包含有原始的 POST 数据。此变量仅在碰到未识别 MIME 类型的数据时产生。$HTTP_RAW_POST_DATA 对于 enctype="multipart/form-data" 表单数据不可用。
也就是说基本上$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST是一样的。
但是如果post过来的数据不是PHP能够识别的,你可以用 $GLOBALS['HTTP_RAW_POST_DATA']来接收。