PHP接收JSON格式的數據
創(chuàng)新互聯專注于木壘哈薩克網站建設服務及定制,我們擁有豐富的企業(yè)做網站經驗。 熱誠為您提供木壘哈薩克營銷型網站建設,木壘哈薩克網站制作、木壘哈薩克網頁設計、木壘哈薩克網站官網定制、成都小程序開發(fā)服務,打造木壘哈薩克網絡公司原創(chuàng)品牌,更為您提供木壘哈薩克網站排名全網營銷落地服務。
在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') 來獲取提交的數據
查看手冊,可以發(fā)現$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST的區(qū)別:
$_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-標準的數據類型。
form表單demo:task.html
fieldset id="setFiled"
legend發(fā)布任務/legend
form action="registr.php" method="post" id="steForm"
label任務類型:/labelbr
input type="text" name="type"? id="taskType" placeholder="請選擇任務類型"/br
label酬nbsp;nbsp;金:/labelbr
input type="number" name="money" id="forMoney" min="1" max="1000"/label元/labelbr
label截止時間:/labelbr
input type="datetime" name="time" id="timeSubmit"/span data-year="" data-month="" data-date="" id="showDate"/spanbr
label詳細描述:/labelbr
textarea maxlength="512" name="textAray" id="msgArea"/textareabr
input type="submit" name="subMit" id="forSub" value="點擊發(fā)布" /
/form
擴展資料
php接收POST數據的三種方式
1、$_POST 方式接受數據
$_POST 方式是由通過HTTP的POST方法傳遞過來的數據組成的數組,是一個自動全局變量。
注:只能接收Content-Type:application/x-www-form-urlencode提交的數據。也就是只能接收表單過來的數據。
2、GLOBLES[‘HTTP_RAW_POST_DATA’]
如果訪問原始POST數據不是php能夠識別的文檔類型,比如:text/xml 或者soap等等,可以用$GLOBLES[‘HTTP_RAW_POST_DATA’]來接收,$HTTP_RAW_POST_DATA變量包含有原始POST數據。此變量僅在碰到未識別的MIME數據時產生。
注:$HTTP_RAW_POST_DATA對于enctype=”multipart/form-data”表單數據不可用,也就是說使用$HTTP_RAW_POST_DATA無法接受網頁表單post過來的數據。
3、file_get_contents(“php://input”);
如果訪問原始POST數據,更好的方法是使用file_get_content(“php://input”);對于未指定Content-Type的POST數據,可以使用該方法讀取POST原始數據,包括二進制流也可以和$HTTP_RAW_POST_DATA比起來。它帶來的生存眼里更小,并且不需要任何特殊的php.ini設置。
注:php://input不能用于 enctype=”multipart/form-data”
例如:$postStr = file_get_contents("php://input"); //獲取POST數據
通常情況下用戶使用瀏覽器網頁表單向服務器post提交數據,我們使用PHP的$_POST接收用戶POST到服務器的數據,并進行適當的處理。但有些情況下,如用戶使用客戶端軟件向服務端php程序發(fā)送post數據,而不能用$_POST來識別,那又該如何處理呢?
我們介紹php接受post數據的三種方式:
1.$_POST方式接收數據
$_POST方式是通過 HTTP POST 方法傳遞的變量組成的數組,是自動全局變量。如使用$_POST[‘name’]就可以接收到網頁表單以及網頁異步方式post過來的數據,
即$_POST只能接收文檔類型為Content-Type: application/x-www-form-urlencoded提交的數據,也就是表單POST過來的數據。
2.$GLOBALS[‘HTTP_RAW_POST_DATA’]方式接收數據
但$GLOBALS[‘HTTP_RAW_POST_DATA’]中是否保存POST過來的數據取決于centent-Type的設置,只有在PHP在無法識別的Content-Type的情況下,才會將POST過來的數據原樣地填入變量$GLOBALS[‘HTTP_RAW_POST_DATA’]中,像Content-Type=application/x-www-form-urlencoded時,該變量是空的。
另外,它同樣無法讀取Content-Type為multipart/form-data的POST數據,也需要設置php.ini中的always_populate_raw_post_data值為On,PHP才會總把POST數據填入變量$http_raw_post_data。
3.php://input方式接收數據
如果訪問原始 POST 數據的更好方法是 php://input。php://input 允許讀取 POST 的原始數據。和 $HTTP_RAW_POST_DATA 比起來,它給內存帶來的壓力較小,并且不需要任何特殊的php.ini設置,php://input不能用于 enctype=”multipart/form-data”。對于未指定 Content-Type 的POST數據,則可以使用file_get_contents(“php://input”)來獲取原始數據。事實上,用PHP接收POST的任何數據都可以使用本方法。而不用考慮Content-Type,包括二進制文件流也可以。php://input讀取不到$_GET數據。是因為$
PHP是弱類型,把以只能加以判斷是否是INT型不能出現字母,處理的時候還是要當做字符來處理的!
?php
function returnNum($num)
{
if(!is_int($num))
{
return false;
}
$result="";
$len=strlen($num);
for($i=0;$i=$len;$i++)
{
$j=substr($num,$i,1);
if(!empty($j))
{
$result=$j.$result;
}
}
echo $result;
}
returnNum(9200);
第一個字母表示類型 count表示ID數量 / 隔開 ild,ild,ild來記錄數據(我是按照你的意思來)
比方
i5/1,2,3,4,5
類型為int 一共5個 分別1,2,3,4,5
其實有必要么。。。直接i:1,2,3,4,5不就行了
不一樣的話這樣寫 i:1,2,3|s:4,5,6
懂了嗎?
1、首先安裝配置php集成環(huán)境。以phpstudy為例。
2、在www目錄下新建一個html文件(new1.html),和一個php(ab.php)文件。
3、html文件先引用所需的類庫jquery文件,其次在body部分,以一個簡單的表單提交為例。
4、html的javascript-ajax部分,以上步body中的cilik事件為例。
5、php文件的編寫部分,主要使用$_POST來接受ajax傳輸的數據,并可以返回不同類型的數據。如echo結果或者json_encode轉碼成為json格式的數據返還給前端做處理。
6、結果展示:表單中的內容在提交后,無刷新展示了出來。
當前名稱:php接收qt數據類型 php怎么接收前端的數據
當前鏈接:http://muchs.cn/article26/doscejg.html
成都網站建設公司_創(chuàng)新互聯,為您提供用戶體驗、品牌網站制作、軟件開發(fā)、標簽優(yōu)化、移動網站建設、App設計
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯