在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中文網其他相關文章!