我想在代码点火器中打印来自地理位置API的所有信息,然后我想插入到数据库中。我尝试使用 foreach 打印,但发现错误,
$ip='202.6x.xx.xx';
$this->load->library('Geolocation');
$this->load->config('geolocation', true);
$config = $this->config->config['geolocation'];
$this->geolocation->initialize($config);
$this->geolocation->set_ip_address($ip);
$country = $this->geolocation->get_country();
//var_dump($country);
$city = $this->geolocation->get_city();
if($city === FALSE){
//var_dump($this->geolocation->get_error());
}
else{
//var_dump($city);
foreach ($city as $c) {
echo $c->regionName; <-- EROR
}
echo "Country code : ".$city['countryName']."'n"; <-- EROR
echo "Cityname : ".$city['cityName']."'n"; <-- EROR
}
这是 var_dump($city) 的值
string(286) "{ "statusCode" : "OK", "statusMessage" : "", "ipAddress" : "202.67.xx.xx", "countryCode" : "ID", "countryName" : "Indonesia", "regionName" : "regionblablabla", "cityName" : "cityblablabla", "zipCode" : "60132", "latitude" : "-7.258", "longitude" : "112.758", "timeZone" : "+07:00" }"
如果使用 foreach :
Severity: Warning
Message: Invalid argument supplied for foreach()
Filename: controllers/Front.php
Line Number: 105
您能否解释一下如何编写正确的代码来打印每个数据。谢谢
你在数组中得到响应,替换这个:
foreach ($city as $c) {
echo $c->regionName;
}
到:
foreach ($city as $c) {
echo "Region :".$c['regionName'];
echo "Country code : ".$c['countryName']."'n";
echo "Cityname : ".$c['cityName']."'n";
}
您的$city
变量包含 json 响应。解码它。
$city = json_decode($city, true);
您现在有一个要循环的数组。