這篇文章主要介紹PHP如何獲取HTTP POST中不同格式的數據,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
創新互聯公司服務項目包括安新網站建設、安新網站制作、安新網頁制作以及安新網絡營銷策劃等。多年來,我們專注于互聯網行業,利用自身積累的技術優勢、行業經驗、深度合作伙伴關系等,向廣大中小型企業、政府機構等提供互聯網行業的解決方案,安新網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到安新省份的部分城市,未來相信會繼續擴大服務區域并繼續獲得客戶的支持與信任!HTTP協議中的POST 方法有多中格式的數據協議,在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 這個不是特別常用,傳輸的數據在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表單的數據,在php中,使用$_POST['name']可以直接獲取, 沒有什么特別的
Content-Type: multipart/form-data; 這種格式的數據,在php中使用$_POST['name']可以獲取字符數據,使用$_FILES['file']可以獲取.
對于Raw這種格式的數據,使用以上兩種辦法沒有辦法獲取到,需要使用別的手段.
1.使用file_get_contents("php://input")獲取;寫一個簡單php文件測試一下
<?php
$test=file_get_contents("php://input");
echo $test;用postman測試一下

沒問題,可以接收到
2.使用$GLOBALS['HTTP_RAW_POST_DATA']接收
<?php $test=$GLOBALS['HTTP_RAW_POST_DATA']; echo $test;
用postman測試一下

臥槽,竟然出錯了,提示沒有發現HTTP_RAW_POST_DATA這個數組索引,什么鬼.Google一番,在php的官網看到了這樣一段話

原來HTTP_RAW_POST_DATA這個在php5.6中已經被廢棄了,在php7.0以后的版本中已經被刪除了,我用的php版本為7.2,肯定就出錯了
好吧,那就老老實實的用file_get_contents("php://input")獲取吧
在實際開發中,一般都是使用框架的,我用thinkphp用比較多,在tp5.0中可以使用Request的getInput()函數獲取Raw中的數據
<?php
namespace app\index\controller;
use think\Request;
class Index
{
public function index(Request $request)
{
echo $request->getInput();
}
}測試一下

以上是PHP如何獲取HTTP POST中不同格式的數據的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創新互聯成都網站設計公司行業資訊頻道!
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
當前名稱:PHP如何獲取HTTPPOST中不同格式的數據-創新互聯
分享鏈接:http://www.yijiale78.com/article38/ceiipp.html
成都網站建設公司_創新互聯,為您提供動態網站、網站排名、移動網站建設、外貿網站建設、面包屑導航、品牌網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯