首頁 >後端開發 >PHP問題 >php接受post傳值的方法

php接受post傳值的方法

(*-*)浩
(*-*)浩原創
2019-09-09 11:54:005209瀏覽

這段時間在研究php的接口,利用jmeter模擬發送數據給php伺服器,看php如何接收post傳輸過去的數據,遇到了幾個問題,經過一番度娘之後終於有所理解,記錄一下:

php接受post傳值的方法

這裡記錄兩種常用的post方式

第一種:

#content-type為application/x-www-form-urlencoded,這是post預設的資料格式,在使用jquery的ajax來post資料的時候預設就是這種方式,這種方式傳輸的資料形式為:username =admin&password=123456。 (推薦學習:PHP程式設計從入門到精通

在伺服器接收的時候就是使用最常用的$_POST方式,取得username則採用$_POST['username']即可正常獲取。

第二種:

這種方式研究了好半天才發現怎麼接收和處理其中的數據,content-type為application/json,在php中是無法直接對application/json的資料格式用$_POST方式接收的。 application/json格式的資料類型為:

{
"username":"admin",
"password":"123455"
}

對於這種post給伺服器的資料類型,在php中需要透過'php://input'原生接收資料類型(post傳送過去的資料方式),然後再用json_encode解析,之後才能操作,php程式碼為:

$raw_post_data = file_get_contents('php://input');
$arr = json_decode($raw_post_data,true);
echo $arr['username'];

至此,才可以取得application/x-www-form-urlencoded格式資料一樣,透過$_POST[ 'username']取得到application/json資料的格式。

以上是php接受post傳值的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn