我只需要关于这个问题的帮助。这是我想在我的 php 输出中实现的目标,因为这是所需的结构。以 JSON 形式返回的事件对象数组。
[
{
"page_item_url":"2111",
"data":{
"startTime":"11:00"
"endTime":"12:00",
"summary":"<p>This has html tags in it from API<p>"
}
},{
"page_item_url":"2112",
"data":{
"startTime":"11:00"
"endTime":"12:00",
"summary":"<p>This has html tags in it from API<p>"
}
}
]
返回的 JSON 应该是这样的,它是来自使用 cUrl 的 API 的调用。我有一个函数,它首先获取所有 ID,然后将它传递给一个变量;
function getOpportunityYearly(){
//curl here...
//I pushed all the ID in my array to the global scope
}
所以现在,我有我的 ID 数组:
$events = [2111,2112,2113,2114,2115];//etc
$jsonResponse = [];
我想循环并从 API 调用另一个 cUrl,然后应该通过 $jsonResponse 推送我的问题是,当我从 getEventByID 传递返回的响应并将其转换为 json 时,结构不正确。
for($i=0;$i<count($events);$i++){
getEventByID($events[$i]);
}
function getEventByID($eventID){
curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =>'https://sampleapi.com/api/v3/data/opportunities/'.$eventID.'?key='.$GLOBALS['API_KEY'].'&fields=["startTime","endTime","physicalDifficulty","summary"]&where={"whereType":"AND","clauses":[{"fieldName":"displayToPublic","operator":"checked"}]}',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
$response = json_decode(curl_exec($curl));
curl_close($curl);
$record = $response->records[0];
return json_encode([[
"page_item_url"=> $record->opportunities_id->value,
"data"=>[
"startTime"=>$record->startTime->displayValue,
"endTime"=>$record->endTime->displayValue,
"summary"=>$record->summary->displayValue,
]
]],JSON_HEX_QUOT | JSON_HEX_TAG);
}
白猪掌柜的
翻翻过去那场雪