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

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

Barbara Streisand
發布: 2024-12-16 19:39:15
原創
936 人瀏覽過

How Can I Properly Read JSON POST Data in PHP?

使用 PHP 讀取 JSON POST

使用需要發布 JSON 格式資料的 Web 服務時,正確處理 PHP 中的 POST 值至關重要。本文將引導您完成有效讀取和解析 JSON POST 資料的步驟。

問題:應用程式/JSON 內容類型為空$_POST 值

如果您遇到空$ 問題儘管指定application/json 作為Content-Type,但_POST 值很可能是由於您過濾post 值的方式所致。在這種情況下,常規的 $_POST 變數不適合讀取 JSON 格式的資料。

解決方案:使用 file_get_contents('php://input') 讀取 JSON

存取原始資料JSON POST 數據,需要使用 file_get_contents('php://input')。此函數讀取目前腳本的輸入流並傳回原始 HTTP 請求正文。

更新了接收端的PHP 代碼:

$json = file_get_contents('php://input');
$obj = json_decode($json);
登入後複製

處理POST 資料測試期間正確

測試Web 服務時,確保POST 資料以正確的格式發送至關重要。在您的測試程式碼中:

  • 使用 json_encode($data) 將資料轉換為 JSON 字串。
  • 在 HTTP 標頭中將 Content-Type 指定為 application/json。

更新測試code:

$data_string = json_encode($data);

$ch = curl_init('http://webservice.local/');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'Content-Type: application/json',
        'Content-Length: ' . strlen($data_string))
);

$result = curl_exec($ch);
$result = json_decode($result);
登入後複製

標頭設定注意事項

確保header('Content-type: application/json ') 在接收端僅呼叫一次。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板