在PHP 中提取JSON Post 正文
考慮以下JSON POST 資料:
{a:1}
在PH 中,預設$_POST 變數將不包含此資料。相反,使用以下方式存取原始HTTP 請求正文:
$entityBody = file_get_contents('php://input');
或者,使用STDIN 常數:
$entityBody = stream_get_contents(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; }
在POST 請求中指定「multipart/form-data」標頭時會發生異常,因為PHP 已經將此資料解析為$_POST 超全域。
以上是如何在 PHP 中擷取 JSON POST 正文?的詳細內容。更多資訊請關注PHP中文網其他相關文章!