我對 cURL 不太熟悉,但一直在努力解決這個問題。
我正在使用 cURL 發送一個發布請求,并且資料欄位是 json 格式。
我的編碼:
$ch = curl_init($url);
$authorization = "Authorization: Bearer ".$token;
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json' , $authorization ));
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = "test";
$data = <<<DATA
{
"shop_id": 1231232,
"message": "test"
}
DATA;
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
我在這里想要實作的是"message"用 php variable 替換值$response。這樣做的正確方法是什么?謝謝!
uj5u.com熱心網友回復:
這與 cURL 無關,它是關于在資料結構或字串中包含變數。
我的第一條建議是:不要在您的代碼中生成 JSON 字串文字,它很繁瑣并且可能容易出錯。構建一個合適的 PHP 資料結構,然后使用json_encode()它可靠地將其轉換為有效的 JSON 字串。
碰巧的是,遵循這種方法也使您當前的需求很容易使用基本的 PHP 實作:
$data = [
"shop_id" => 1231232,
"message" => $response
];
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
PS 在不同的情況下(例如不嘗試生成 JSON),使用 heredoc 會更合適,解決方案也很簡單,您只需將硬編碼的值替換為變數:
$data = <<<DATA
{
"shop_id": 1231232,
"message": $response
}
DATA;
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/521084.html
標籤:phpjson卷曲邮政
