讀取原始 POST 資料
通常,POST 請求中傳送的資料是 MIME 型別為 application/x-www-form-urlencoded
的結構化鍵/值對。但是,許多應用程式(如 Web 服務)需要傳送原始資料(通常是 XML 或 JSON 格式)。可以使用兩種方法之一讀取此資料。
php://input
是一個流,提供對原始請求主體的訪問。
$rawdata = file_get_contents("php://input");
// Let's say we got JSON
$decoded = json_decode($rawdata);
Version < 5.6
$HTTP_RAW_POST_DATA
是一個包含原始 POST 資料的全域性變數。僅當啟用 php.ini
中的 always_populate_raw_post_data
指令時才可用。
$rawdata = $HTTP_RAW_POST_DATA;
// Or maybe we get XML
$decoded = simplexml_load_string($rawdata);
自 PHP 5.6 以來,該變數已被棄用,並在 PHP 7.0 中被刪除。
請注意,當內容型別設定為 multipart/form-data
(用於檔案上載)時,這兩種方法都不可用。