PHP接收JSON格式的數據


在API服務中,目前流行采用json形式來交互。

給前端調用的接口輸出Json數據,這個比較簡單,只需要組織好數據,用json_encode($array) 轉化一下,前端就得到json格式的數據。

接收前端提交的json數據稍微復雜一點,原因是:PHP默認識別的數據類型是application/x-www.form-urlencoded標准的數據類型。因此,對型如text/xml 或者 soap 或者 application/octet-stream 和application/json格式之類的內容無法解析,如果用$_POST數組來接收就會失敗!

此時可以使用$GLOBALS['HTTP_RAW_POST_DATA']  或  file_get_contents('php://input') 來獲取提交的數據

 

查看手冊,可以發現$GLOBALS['HTTP_RAW_POST_DATA']  和  $_POST的區別:

  $_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']來接收,比如 text/xml 或者 soap 等等。

  補充說明:PHP默認識別的數據類型是application/x-www.form-urlencoded標准的數據類型。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM