如何從PHP POST 請求中提取JSON 資料
透過POST 請求向PHP 腳本提交JSON 資料時,存取正文可能會令人困惑。使用 var_dump($_POST);將會傳回一個空數組。
解決方案:使用php://input
要存取請求正文,PHP 提供了php://input:
$entityBody = file_get_contents('php://input');
此流包含原始POST 資料。您也可以使用stream_get_contents(STDIN),因為STDIN是php://input的別名。
注意事項:
function detectRequestBody() { $rawInput = fopen('php://input', 'r'); $tempStream = fopen('php://temp', 'r+'); stream_copy_to_stream($rawInput, $tempStream); rewind($tempStream); return $tempStream; }
限制:
php://input 對於Content-Type: multipart/form-data 的請求不可用,如PHP處理多部分資料
範例:
要在 PHP 程式碼中存取 JSON 物件 {a:1},請使用:
$json = json_decode(file_get_contents('php://input')); echo $json->a; // 1
以上是如何從 PHP POST 請求正確存取 JSON 資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!