這篇文章主要介紹PHP如何獲取HTTP POST中不同格式的數(shù)據(jù),文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)公司自2013年創(chuàng)立以來,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目成都網(wǎng)站設計、成都做網(wǎng)站網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元水富做網(wǎng)站,已為上家服務,為水富各地企業(yè)和個人服務,聯(lián)系電話:13518219792
HTTP協(xié)議中的POST 方法有多中格式的數(shù)據(jù)協(xié)議,在HTTP的head中用不同的Content-type標識.常用的有
application/x-www-form-urlencoded
,這是最常見的,就是from表單的格式.在HTTP的head中是Content-Type: application/x-www-form-urlencoded.
multipart/form-data
,這個是用來上傳文件的,在HTTP的head中是Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
Raw 這個不是特別常用,傳輸?shù)臄?shù)據(jù)在HTTP的body中只有一段,不是以鍵值對的形式存放.在HTTP的head中是Content-Type: application/json
,Content-Type: text
,Content-Type: application/xml
,Content-Type: text/xml
,等等形式
對于Content-Type: application/x-www-form-urlencoded
這種form表單的數(shù)據(jù),在php中,使用$_POST['name']
可以直接獲取, 沒有什么特別的
Content-Type: multipart/form-data;
這種格式的數(shù)據(jù),在php中使用$_POST['name']
可以獲取字符數(shù)據(jù),使用$_FILES['file']
可以獲取.
對于Raw這種格式的數(shù)據(jù),使用以上兩種辦法沒有辦法獲取到,需要使用別的手段.
1.使用file_get_contents("php://input")
獲取;寫一個簡單php文件測試一下
用postman測試一下
沒問題,可以接收到
2.使用
$GLOBALS['HTTP_RAW_POST_DATA']
接收用postman測試一下
臥槽,竟然出錯了,提示沒有發(fā)現(xiàn)
HTTP_RAW_POST_DATA
這個數(shù)組索引,什么鬼.Google一番,在php的官網(wǎng)看到了這樣一段話原來
HTTP_RAW_POST_DATA
這個在php5.6中已經被廢棄了,在php7.0以后的版本中已經被刪除了,我用的php版本為7.2,肯定就出錯了好吧,那就老老實實的用
file_get_contents("php://input")
獲取吧在實際開發(fā)中,一般都是使用框架的,我用thinkphp用比較多,在tp5.0中可以使用Request的getInput()函數(shù)獲取Raw中的數(shù)據(jù)
getInput(); } }測試一下
以上是PHP如何獲取HTTP POST中不同格式的數(shù)據(jù)的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)站標題:PHP如何獲取HTTPPOST中不同格式的數(shù)據(jù)
當前路徑:http://weahome.cn/article/jjcpgi.html