PHP接收JSON格式的數據
專業成都網站建設公司,做排名好的好網站,排在同行前面,為您帶來客戶和效益!創新互聯為您提供成都網站建設,五站合一網站設計制作,服務好的網站設計公司,成都網站設計、網站制作負責任的成都網站制作公司!
在API服務中,目前流行采用json形式來交互。
給前端調用的接口輸出Json數據,這個比較簡單,只需要組織好數據,用json_encode($array) 轉化一下,前端就得到json格式的數據。
接收前端提交的json數據稍微復雜一點,原因是:PHP默認識別的數據類型是application/x-標準的數據類型。因此,對型如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 等等。
三中接受方式:
$_GET ? ?//get過來的數據
$_POST ?//post過來的數據
file_get_contents("php://input") ? //接口過來的xml等字符串數據用這個接
這三個方法足以接受任何數據了,具體你還要百度一下用法
PHP 可以通過POST、GET方法獲取到表單提交的數據
獲取到的POST、GET是數組形式的值,需要通過鍵值來詳細獲取相應的值
比如: index.php 頁面
下面是POST方法
form name="form1" method="post" action="index.php"
input type="text" name="contents" value=""
input type="submit" value="提交"
/form
?php
//獲取表單提交的數據
$contents = $_POST['contents'];
echo $contents;
?
也可以是下面是GET方法
form name="form1" method="get" action="index.php"
input type="text" name="contents" value=""
input type="submit" value="提交"
/form
?php
//獲取表單提交的數據
$contents = $_GET['contents'];
echo $contents;
?
POST相對于GET方法,更好一些,可以提交大量數據,以及更安全些。