讀取原始 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(用於檔案上載)時,這兩種方法都不可用。