我正在使用 curl_multi 發送 2 個帖子請求,資料以一個 $response 的形式正確回傳,我需要知道現在在 PHP 中處理這個 JSON 資料的正確方法。
當我在<pre>標簽之間進行回聲時,我的JSON被正確顯示,但是現在我不確定如何用PHP從中獲取我想要的資料。
對于單個API來說,這通常是一個簡單的任務,但我不知道為什么我在使用curl_multi時遇到了這么多的麻煩!
json被回傳到一個單一的API中。
json被回傳到我的pre標簽里面;
{
"車輛": [
{
"ExternalVehicleId": "9uq0jz1c",
"StockId": "1234",
"Errors": []
}
]
}
{
"Finance": [
{
"ExternalVehicleId": "9uq0jz1d",
"StockId": "4321",
"Errors": []
}
]
}
這就是json的回傳方式,但有更多的嵌套陣列。從語法上看,所有的內容都是正確的。
這是我的php,我很確定它沒有問題;
這是我的php,我很確定它沒有問題。
$mh = curl_multi_init();
foreach ($urls as $key => $url) {
$chs[$key] = curl_init($url)。
curl_setopt($chs[$key], CURLOPT_RETURNTRANSFER, true)。
curl_setopt($chs[$key], CURLOPT_HEADER, false)。
curl_setopt($chs[$key], CURLOPT_CONNECTTIMEOUT, 200) 。
curl_setopt($chs[$key], CURLOPT_TIMEOUT_MS, 25000) 。
curl_setopt($chs[$key], CURLOPT_CUSTOMREQUEST, "POST") 。
curl_setopt($chs[$key], CURLOPT_POST, true) 。
curl_setopt($chs[$key], CURLOPT_POSTFIELDS, json_encode($request_contents[$key] )。
curl_setopt($chs[$key], CURLOPT_HTTPHEADER, $headers) 。
curl_multi_add_handle($mh, $chs[$key]) 。
}
$running = null;
do {
curl_multi_exec($mh, $running)。
} while($running)。
foreach (array_keys($chs) as $key) {
$error = curl_error($chs[$key]) 。
$last_effective_URL = curl_getinfo($chs[$key], CURLINFO_EFFECTIVE_URL) 。
$time = curl_getinfo($chs[$key], CURLINFO_TOTAL_TIME) 。
$response = curl_multi_getcontent($chs[$key]); //獲取結果
if (!empty($error) {
echo "The request $key return a error: $error" 。"
"。
} else {
echo "The request to '$last_effective_URL' returned '$response' in $time seconds. "
"。
echo "<pre>";
echo $response;
echo "</pre>"/span>;
}
curl_multi_remove_handle($mh, $chs[$key])。
}
curl_multi_close($mh)。
uj5u.com熱心網友回復:
你可以用一個foreach來解壓回應物件。 比如說
foreach($response as $value-> $index){
echo "value" . $value . " 索引。" . $index;
}
這是一個例子,應該讓你了解如何除錯你的代碼。
我是用手機打字的,所以很抱歉
。uj5u.com熱心網友回復:
你可能需要在關閉車輛括號后加一個逗號
{
"Vehicles": [
{
"ExternalVehicleId": "9uq0jz1c",
"StockId": "1234",
"Errors": []
}
]
}
,
{
"Finance": [
{
"ExternalVehicleId": "9uq0jz1d",
"StockId": "4321",
"Errors": []
}
]
}
uj5u.com熱心網友回復:
將回應連接成一個單一的JSON陣列,然后你可以json_decode():
$responses=[]。
foreach (array_keys($chs) as $key) {
$responses[] = curl_multi_getcontent($chs[$key]) 。
}
$json = json_decode( '['/span> . join(',', $responses) . ']' )。)
var_dump($json)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/307061.html
標籤:
上一篇:基于寵物型別的渲染卡
