PHP接收J(rèn)SON格式的數(shù)據(jù)

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序定制開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了龍江免費(fèi)建站歡迎大家使用!
在API服務(wù)中,目前流行采用json形式來交互。
給前端調(diào)用的接口輸出Json數(shù)據(jù),這個(gè)比較簡單,只需要組織好數(shù)據(jù),用json_encode($array) 轉(zhuǎn)化一下,前端就得到j(luò)son格式的數(shù)據(jù)。
接收前端提交的json數(shù)據(jù)稍微復(fù)雜一點(diǎn),原因是:PHP默認(rèn)識(shí)別的數(shù)據(jù)類型是application/x-標(biāo)準(zhǔn)的數(shù)據(jù)類型。因此,對(duì)型如text/xml 或者 soap 或者 application/octet-stream 和application/json格式之類的內(nèi)容無法解析,如果用$_POST數(shù)組來接收就會(huì)失敗!
此時(shí)可以使用$GLOBALS['HTTP_RAW_POST_DATA'] 或 file_get_contents('php://input') 來獲取提交的數(shù)據(jù)
查看手冊(cè),可以發(fā)現(xiàn)$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST的區(qū)別:
$_POST:通過 HTTP POST 方法傳遞的變量組成的數(shù)組,是自動(dòng)全局變量。
$GLOBALS['HTTP_RAW_POST_DATA'] :總是產(chǎn)生 $HTTP_RAW_POST_DATA 變量包含有原始的 POST 數(shù)據(jù)。此變量僅在碰到未識(shí)別 MIME 類型的數(shù)據(jù)時(shí)產(chǎn)生。$HTTP_RAW_POST_DATA 對(duì)于 enctype="multipart/form-data" 表單數(shù)據(jù)不可用。也就是說基本上$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST是一樣的。但是如果post過來的數(shù)據(jù)不是PHP能夠識(shí)別的,你可以用 $GLOBALS['HTTP_RAW_POST_DATA']來接收,比如 text/xml 或者 soap 等等。
直接$_GET或者$_POST獲取對(duì)方發(fā)送的數(shù)據(jù)就行了,前提是對(duì)方有再次請(qǐng)求你接口發(fā)送0/1鍵值對(duì)
第一個(gè)字母表示類型 count表示ID數(shù)量 / 隔開 ild,ild,ild來記錄數(shù)據(jù)(我是按照你的意思來)
比方
i5/1,2,3,4,5
類型為int 一共5個(gè) 分別1,2,3,4,5
其實(shí)有必要么。。。直接i:1,2,3,4,5不就行了
不一樣的話這樣寫 i:1,2,3|s:4,5,6
懂了嗎?
兩種比較簡單的方法:
1、使用curl
$url?=?"";
$ch?=?curl_init();
curl_setopt($ch,?CURLOPT_URL,?$url);
curl_setopt($ch,?CURLOPT_RETURNTRANSFER,?1);
curl_setopt($ch,?CURLOPT_TIMEOUT?,?30);
$output?=?curl_exec($ch);
curl_close($ch);
echo?$output;
2、使用file_get_contents
$output?=?file_get_contents($url);
echo?$output;
3 、使用socket 也是可以的
網(wǎng)頁題目:php接受接口數(shù)據(jù) php數(shù)據(jù)庫接口
網(wǎng)站URL:http://chinadenli.net/article24/hippje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、面包屑導(dǎo)航、動(dòng)態(tài)網(wǎng)站、定制網(wǎng)站、服務(wù)器托管、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)