使用 PHP CURL 寫一個 Http Request,傳遞 JSON 資料給後端及接收對方回傳的 JSON 資料|PHP|json|API 串接|Http Request|CURL|伊恩踩坑筆記
Jul 8, 2021
現在的框架其實都已經寫好了(例如 Laravel),不需要自己寫這種 function。但如果你是寫原生 PHP,可以用 Curl 寫一個 Http Request 給自己用
function httpRequest($api, $data_string) {
$ch = curl_init($api);
curl_setopt($ch, CURLOPT_POST, 1);
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);
curl_close($ch); return json_decode($result, true);
}
將以下資料以 json 格式傳給後端
$data = [
"id" => $id,
"field" => $field
];
$data = httpRequest('<https-api-url>', json_encode($data));
然後對方若有回傳資料,可以直接印出 $data
像這樣:
echo $data['message'];
如果對方回的是 JSON Array
,就可以用 PHP
的 foreach
迴圈顯示出來:
foreach ($data as $value) {
echo $value['message'];
}
也可以用現有的函數 sizeof
計算 Array
長度
echo sizeof($data);
也可以直接印出後端回的 Body
# 將以上 httpRequest() 的
return json_decode($result, true);# 改為以下
return $result;
就可以直接印出 Body
(當然可能要做些處理)
echo $data;
這是以前還沒有碰框架時的做法
ING Design 応設計
https://www.theingdesign.com/