php 獲取HTTP POST中不同格式的資料

2021-09-19 17:46:24 字數 1654 閱讀 5842

http協議中的post 方法有多中格式的資料協議,在http的head中用不同的content-type標識.常用的有

multipart/form-data,這個是用來上傳檔案的,在http的head中是content-type: multipart/form-data; boundary=----webkitformboundary7ma4ywxktrzu0gw

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']接收

用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 

use think\request;

class index

}

測試一下

沒有問題,可以正常獲取

關於php獲取http post資料的方法先介紹到這裡

php 傳送http post請求

php curl post請求中攜帶header引數 或者 header 0 text html q 0.9,text plain q 0.8,image png,q 0.5 header cache control max age 0 header connection keep alive he...

mvc中Action前HttpPost的作用

一 action前httppost例項 指令碼呼叫 function post test function data 或者 ajax 二 action前httppost 的作用 限制action只接受httppost的請求,對於httpget的請求則提示404找不到頁面。如果action前即沒有 h...

Lua獲取C 中的double float不精確

lua向c 中傳輸數值,c 部分取為float型別時資料時準確的 此時不能在linux gdb 斷點 p 出資料,否則資料也會不準確,而實際時準確的。而lua從c 中獲得float 或者 double資料時,會出現 float 108.032 獲得到lua中時 變為 108.03197994 之類的...