2013-04-30 35 views
4

有沒有什麼方法可以訪問通過HTTP PUT方法發送的數據,而不是$putdata = fopen("php://input", "r");使用PHP的HTTP PUT,DELETE和I/O流

我從來沒有與PUTDELETE方法和$putdata = fopen("php://input", "r");似乎有點粗略。它能在任何地方工作是否需要特定的服務器/ php.ini配置?

我知道,我可以從$_SERVER['REQUEST_METHOD'];

獲得請求的方法,但將數據在$_REQUEST,如果是,那麼什麼php://input是什麼? 我如何訪問通過DELETE發送的數據?

回答

3

不,您需要手動解析請求。 $_REQUEST只包含來自GETPOST請求的數據;對於你自己的一切。

如果你的HTTP請求有Content-Type: application/x-www-form-urlencoded,你可以用parse_str解析它放回一個變量數組很容易像這樣:

您可以使用此內容類型與任何HTTP方法,沒有標準 - 強加的限制。

+0

有趣! 'DELETE'也將在'php:// input'中? – rinchik 2013-04-30 21:28:31

+0

@rinchik:'php:// input'包含客戶端發送的任何HTTP請求的主體。方法(GET/POST/DELETE/whatever)也是客戶的選擇。作爲主體發送的數據類型也是客戶的選擇。所以是的,只要服務器知道如何處理客戶端發送的*,它就會適用於所有的*。我的例子只說明瞭一種可能的做事方式,因爲它與使用POST提交表單時使用的完全相同。 – Jon 2013-04-30 21:32:28

+0

甜。謝謝^ _^ – rinchik 2013-04-30 21:39:43

相關問題