我有一个反向地理编码脚本,该脚本根据纬度和经度返回一个城市名称,只要我们尝试仅查看一个城市的结果,它就可以正常工作。但是,当我在foreach循环中(大约3000个城市一台)运行相同的脚本时,将花费一些时间,但返回一个空白响应,因此我的从属代码给出了错误的结果。
已经编写了以下代码,该代码在大约前30条记录中工作正常,然后在20条奇数记录后再次给出空白响应,并给出了正确的结果,依此类推。因此,我需要为每30条记录执行一次此脚本,而我的总记录接近3万。
foreach ($cityArray as $city)
{
$curl = curl_init('https://us1.locationiq.com/v1/reverse.php?key=MY_KEY&lat=CITY_LATITUDE&lon=CITY_LONGITUDE&format=json');
curl_setopt_array($curl, array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_CUSTOMREQUEST => 'GET',
));
$response = curl_exec($curl);
$err = curl_error($curl);
if ($err)
```Joomla log error code
else
$json = json_decode($response);
``` update the record into table with decode json array object
curl_close($curl);
}
30个奇数记录后,脚本返回空白响应。如果我们再次执行相同的脚本,它将给出结果。脚本应至少执行3000条记录,而不能给出30条记录的正确结果。