if
(!
empty
(
$GLOBALS
[
'HTTP_RAW_POST_DATA'
]))
{
$command
= isset(
$GLOBALS
[
'HTTP_RAW_POST_DATA'
]) ?
$GLOBALS
[
'HTTP_RAW_POST_DATA'
] :
file_get_contents
(
"php://input"
);
$j
=json_decode(
$command
,true);
}
echo
$j
;
近用到ext與PHP交互,ext把json數據post給PHP,但在PHP裏面$_post獲取不到,$_REQUEST也獲取不到,但是通過firedebug看到的請求信息確實是把JSON數據post給了PHP,這什麼情況?
突然想到了以前接觸過flash將圖片二進制流傳給php,靈機一動用$GLOBALS['HTTP_RAW_POST_DATA']獲取到了。於是就深入的查了一下,原來PHP默認只識別application/x-www.form-urlencoded標準的數據類型,因此,對型如text/xml或者 soap 或者 application/octet-stream之類的內容無法解析,如果用$_POST數組來接收就會失敗!故保留原型,交給$GLOBALS['HTTP_RAW_POST_DATA']來接收。