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 陣列。這...