我們開發PHP的Restful介面都會知道有PUT方法更新資源,那到底如何使用PUT這個HTTP方法更新資源,本文主要和大家分享PHP中Restful PUT方法的參數提交及接收詳解,希望能幫助大家。
有時候我們發現接收PUT方法發送的參數不是我們想要的類型,想要一個參數數組,卻被接收成一串字串,這種問題其實是我們把Content-Type
的型別搞錯了,我們發送的是application/json
或application/x-www-form-urlencoded
對應的數據,但Content-Type
卻是multipart/form-data
,這樣接收的資料就變成了form-data的樣子:
----------------------------217287928126218120101488Content-Disposition: form-data; name="status" 1 ----------------------------217287928126218120101488--
並且Restful的資料基本上都是json格式傳輸,所以發送的HTTP頭應該是Content-Type=application/json
。
使用POST MAN:
PUT方法接受參數使用:
parse_str(file_get_contents('php://input'), $data);
參數保存在$data
裡。
如果使用tp5框架可以使用助手函數實作:
input('put.status');input('put.');
ps:這裡的form-data誤區應該是由PHP的POST和PUT方法內部解析multipart/form-data
的資料方式不同導致的,POST方法把參數解析到$_POST並把content內容置空,而PUT卻沒有這步驟操作,所以要注意使用上的差異。
相關推薦:
以上是PHP中Restful PUT方法的參數提交及接收詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!