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

如何在 PHP 中正確存取 JSON POST 資料?

Barbara Streisand
Barbara Streisand原創
2024-12-22 04:19:12410瀏覽

How to Properly Access JSON POST Data in PHP?

在PHP 中存取POST 資料:解碼JSON Body

在PHP 中,處理POST 請求需要存取請求正文以提取提交的資料。接收 JSON 編碼的正文時,使用適當的方法檢索所需資訊非常重要。

JSON 提取

存取 POST 正文中的 JSON 數據,不要依賴$_POST。相反,使用 file_get_contents('php://input'):

$json_input = file_get_contents('php://input');
$data = json_decode($json_input, true);

這會將原始 POST 正文讀取為字串,然後使用 json_decode() 將其解碼為 PHP 陣列。

處理多部分/表單資料

如果您的 POST 要求有multipart/form-data 編碼,資料將自動解析到 $_POST 超全局。但是,請注意,在這種情況下,您無法使用 php://input 存取原始 JSON 正文。

範例

例如,如果您使用以下命令提交 POST 請求以下 JSON 正文:

{"a": 1}

您的 PHP程式碼可以解碼為如下:

$json_input = file_get_contents('php://input');
$data = json_decode($json_input, true);

var_dump($data['a']); // Outputs: 1

可查找性注意事項

php://input 不可查找,這表示它只能讀取一次。如果您需要為多個讀取操作保留流,請考慮使用stream_copy_to_stream()建構臨時流或使用php://temp以獲得更好的記憶體管理。

以上是如何在 PHP 中正確存取 JSON POST 資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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