0
function weatherData($date_array){
$weather_array = [];
$url = "http://api.worldweatheronline.com/premium/v1/past-weather.ashx?key=#######&q=frankston&format=json&date=";
// Get cURL resource
array_pop($date_array);
foreach($date_array as $value){
$url2 = $url . $value;
$curl = curl_init();
// Set some options - we are passing in a useragent too here
curl_setopt_array($curl, array(
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $url2
));
// Send the request & save response to $resp
$resp = curl_exec($curl);
// Close request to clear up some resources
curl_close($curl);
$data = json_decode($resp);
$runningTotal = 0;
for ($i=0; $i < 7; $i++) {
$hourly_data = $data->data->weather[0]->hourly[$i]->precipMM;
$runningTotal += $hourly_data;
}
if($runningTotal >= 0.7){
array_push($weather_array, 'wet <img class="icon" src="images/icons8-Rain-26.png"/>');
} else{
array_push($weather_array, 'dry <img class="icon" src="images/images.png"/>');
}
}
return $weather_array;
好了,所以我有这个功能,将输出的天气数组或不能确定日期是“湿”或“干”,我的问题是,如果我有,也许120日期,我想这样做将花费超过30秒的页面加载时间导致PHP中的严重错误,所以我需要一些方法将这些同步卷曲请求以某种形式的异步窗体,谢谢!加快我的PHP卷曲的请求,天气功能
p.s.对不起,这种垃圾缩进
这将是值得尝试完成同样的事情,而不使用第4步。您可以直接请求外部网站,甚至不需要使用您的服务器。 –
@DawidZbiński我同意。这可能是值得的。但是,我猜想,对外部网站进行ajax调用会继承自己的挑战。在这里,我只是试图说明解决当前问题的要点。无论如何,感谢您阅读答案并提供您的建议。 –
@Bhavik_Shah是的,当然。我明白你的意思。我只是说这是值得尝试的,因为它会加快速度并减轻服务器负担。当然,这并不总是可能的,因为它也取决于外部。 –