php接收數(shù)組數(shù)據(jù),php訪問(wèn)數(shù)組元素

php怎樣接收整個(gè)json數(shù)組

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

創(chuàng)新互聯(lián)建站是一家專注于網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站與策劃設(shè)計(jì),高邑網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:高邑等地區(qū)。高邑做網(wǎng)站價(jià)格咨詢:18982081108

在API服務(wù)中,目前流行采用json形式來(lái)交互。

給前端調(diào)用的接口輸出Json數(shù)據(jù),這個(gè)比較簡(jiǎn)單,只需要組織好數(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)容無(wú)法解析,如果用$_POST數(shù)組來(lái)接收就會(huì)失?。?/p>

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

查看手冊(cè),可以發(fā)現(xiàn)$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST的區(qū)別:

$_POST:通過(guò) HTTP POST 方法傳遞的變量組成的數(shù)組,是自動(dòng)全局變量。

$GLOBALS['HTTP_RAW_POST_DATA'] :總是產(chǎn)生 $HTTP_RAW_POST_DATA 變量包含有原始的 POST 數(shù)據(jù)。此變量?jī)H在碰到未識(shí)別 MIME 類型的數(shù)據(jù)時(shí)產(chǎn)生。$HTTP_RAW_POST_DATA 對(duì)于 enctype="multipart/form-data" 表單數(shù)據(jù)不可用。也就是說(shuō)基本上$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST是一樣的。但是如果post過(guò)來(lái)的數(shù)據(jù)不是PHP能夠識(shí)別的,你可以用 $GLOBALS['HTTP_RAW_POST_DATA']來(lái)接收,比如 text/xml 或者 soap 等等。

補(bǔ)充說(shuō)明:PHP默認(rèn)識(shí)別的數(shù)據(jù)類型是application/x-標(biāo)準(zhǔn)的數(shù)據(jù)類型。

php 接收到之后post數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)

form表單demo:task.html

fieldset id="setFiled"

legend發(fā)布任務(wù)/legend

form action="registr.php" method="post" id="steForm"

label任務(wù)類型:/labelbr

input type="text" name="type"? id="taskType" placeholder="請(qǐng)選擇任務(wù)類型"/br

label酬nbsp;nbsp;金:/labelbr

input type="number" name="money" id="forMoney" min="1" max="1000"/label元/labelbr

label截止時(shí)間:/labelbr

input type="datetime" name="time" id="timeSubmit"/span data-year="" data-month="" data-date="" id="showDate"/spanbr

label詳細(xì)描述:/labelbr

textarea maxlength="512" name="textAray" id="msgArea"/textareabr

input type="submit" name="subMit" id="forSub" value="點(diǎn)擊發(fā)布" /

/form

擴(kuò)展資料

php接收POST數(shù)據(jù)的三種方式

1、$_POST 方式接受數(shù)據(jù)

$_POST 方式是由通過(guò)HTTP的POST方法傳遞過(guò)來(lái)的數(shù)據(jù)組成的數(shù)組,是一個(gè)自動(dòng)全局變量。

注:只能接收Content-Type:application/x-www-form-urlencode提交的數(shù)據(jù)。也就是只能接收表單過(guò)來(lái)的數(shù)據(jù)。

2、GLOBLES[‘HTTP_RAW_POST_DATA’]

如果訪問(wèn)原始POST數(shù)據(jù)不是php能夠識(shí)別的文檔類型,比如:text/xml 或者soap等等,可以用$GLOBLES[‘HTTP_RAW_POST_DATA’]來(lái)接收,$HTTP_RAW_POST_DATA變量包含有原始POST數(shù)據(jù)。此變量?jī)H在碰到未識(shí)別的MIME數(shù)據(jù)時(shí)產(chǎn)生。

注:$HTTP_RAW_POST_DATA對(duì)于enctype=”multipart/form-data”表單數(shù)據(jù)不可用,也就是說(shuō)使用$HTTP_RAW_POST_DATA無(wú)法接受網(wǎng)頁(yè)表單post過(guò)來(lái)的數(shù)據(jù)。

3、file_get_contents(“php://input”);

如果訪問(wèn)原始POST數(shù)據(jù),更好的方法是使用file_get_content(“php://input”);對(duì)于未指定Content-Type的POST數(shù)據(jù),可以使用該方法讀取POST原始數(shù)據(jù),包括二進(jìn)制流也可以和$HTTP_RAW_POST_DATA比起來(lái)。它帶來(lái)的生存眼里更小,并且不需要任何特殊的php.ini設(shè)置。

注:php://input不能用于 enctype=”multipart/form-data”

例如:$postStr = file_get_contents("php://input"); //獲取POST數(shù)據(jù)

php如何接收數(shù)組數(shù)據(jù)

使用遍歷,把數(shù)組的數(shù)每次賦值一個(gè)給某一個(gè)元素,假設(shè)為$X,然后再把$cArr['keyword']=$cArr['keyword'].$X

網(wǎng)站標(biāo)題:php接收數(shù)組數(shù)據(jù),php訪問(wèn)數(shù)組元素
文章網(wǎng)址:http://muchs.cn/article14/phigge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)自適應(yīng)網(wǎng)站、云服務(wù)器、品牌網(wǎng)站建設(shè)、商城網(wǎng)站做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管