首頁 >後端開發 >php教程 >如何從 PHP POST 請求正確存取 JSON 資料?

如何從 PHP POST 請求正確存取 JSON 資料?

Barbara Streisand
Barbara Streisand原創
2024-12-23 17:26:10638瀏覽

How to Properly Access JSON Data from PHP POST Requests?

如何從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的別名。

注意事項:

  • php://input is不可查找,因此只能讀取一次。
  • 對於大型資料集,請考慮使用臨時流對其進行緩衝,例如as:
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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn