1
在非post請求期間當請求體被提供爲x-www-form-urlencoded
或multipart/form-data
時,有沒有辦法讓PHP自動填充$ _POST超全局數組?在非POST請求期間PHP不解析x-www-form-urlencoded數據
目前,如果我發出PATCH
請求,並且請求由上述任一種內容類型組成,那麼數據永遠不會輸入超全球。
在非post請求期間當請求體被提供爲x-www-form-urlencoded
或multipart/form-data
時,有沒有辦法讓PHP自動填充$ _POST超全局數組?在非POST請求期間PHP不解析x-www-form-urlencoded數據
目前,如果我發出PATCH
請求,並且請求由上述任一種內容類型組成,那麼數據永遠不會輸入超全球。
構建RESTful API時遇到了類似的問題。以下是構建$requestData
的代碼。到俄勒斯特'點,我不修改超全球。應該讓你開始:
switch ($request_method) {
case 'get':
$requestData = $_GET;
break;
case 'post':
$requestData = $_POST;
break;
case 'put':
case 'delete':
// read string from PHP's special input location and parse into an array
parse_str(file_get_contents('php://input'), $requestData);
break;
}
這隻支持'x-www-form-urlencoded',對吧? –
你不應該接觸超全球植物。如果其餘的代碼需要它們。你應該圍繞它們編寫一個包裝器,並且有一個用於填充包裝器的特定方法。 – Orestes
我不需要將值推入超大全局,所以這不是問題。 –
不,PHP沒有任何內置的方法來實現這一點;它的HTTP抽象是非常有限的,迎合了網絡的九十年代版本,其中'GET'和'POST'是唯一被大量使用的HTTP動詞。我一直有意爲自己編寫一個multiplart MIME解析器,而沒有理解它。由其SAP SAPI構成的PHP對RESTful Web應用程序不太有利。您可以共同支持,但目前該語言不提供完整的(本機)HTTP工具包。 – rdlowrey