post提交資料的常見方式及php對應的接收方法

2021-09-11 05:12:40 字數 1690 閱讀 4352

post提交資料的方式,主要體現在http協議頭上的content-type欄位,不同的content-type對應不同的http請求體,與之相應的php接收資料方法也不同。

html中的form表單,如果不設定enctype屬性,就預設用該方式提交資料。

傳送的http請求類似:

name=ball%e7%90%83&age=99資料以kv對形式存並進行了urlencode,多個kv以&連線。比如上面的請求,實際傳送的資料就是

name=ball%e7%90%83&age=99
可以使用$_post獲取資料。

例:

var_dump($_post);

//得到結果

array(2)

html中的form也可以設定這種方式上傳資料。還是1中的資料,如果用該方式傳送,則請求類似:

ball球

------webkitformboundary6xncmq0p32kifnle

content-disposition: form-data; name="age"

99------webkitformboundary6xncmq0p32kifnle--注意:資料並未進行urlencode

可以使用$_post獲取資料。

例:

var_dump($_post);

//得到結果

array(2)

上例可以看到,同樣是傳送name,age,使用multipart/form-data請求要大了很多,那麼該方式存在的意義是什麼呢?

可以使用php://input接收資料

$c = file_get_contents("php://input"); 

echo $c;

var_dump(json_decode($c, true));

//得到結果

array(2)

注意:早先的php版本,還可以從$globals[『http_raw_post_data』]獲取資料,但php7之後,不再支援這種方式。

傳送接收

$_post

multipart/form-data(資料)

$_post

multipart/form-data(檔案)

$_files

rawphp://input

常見的 POST 提交資料方式

http請求方法 根據http標準,http請求可以使用多種請求方法。http1.0定義了三種請求方法 get,post 和 head方法。http1.1新增了五種請求方法 options,put,delete,trace 和 connect 方法。序號 方法描述 1get 請求指定的頁面資訊,並返...

POST提交資料方式

當直接提交form表單時,預設就使用此種方式。這又是乙個常見的 post 資料提交的方式。我們使用表單上傳檔案時,必須讓 form 的 enctyped 等於這個值。上傳資料使用,不過多闡述。json 格式支援比鍵值對複雜得多的結構化資料,這一點也很有用。記得我幾年前做乙個專案時,需要提交的資料層次...

四種常見的 POST 提交資料方式

urlencoded 其次,提交的資料按照 key1 val1 key2 val2 的方式進行編碼,key 和 val 都進行了 url 轉碼。大部分服務端語言都對這種方式有很好的支援。例如 php 中,post title 可以獲取到 title 的值,post sub 可以得到 sub 陣列。這...