在codeigniter中打印geolocation api中的每个数据
Posted
技术标签:
【中文标题】在codeigniter中打印geolocation api中的每个数据【英文标题】:Print each data from geolocation api in codeigniter 【发布时间】:2016-03-11 16:21:44 【问题描述】:我想在 codeigniter 中打印来自地理位置 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
你能解释一下如何编写正确的代码来打印每个数据吗?谢谢
【问题讨论】:
请善待并告诉我们一个错误。并告诉我们var_dump($city)
你在 $city 变量中得到了什么
我已经编辑了我的问题
【参考方案1】:
你在数组中得到响应,替换这个:
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";
【讨论】:
仍然无法正常工作,错误:为 foreach() 提供的参数无效 @fatchul chkprint_r($city);
或echo $c
在循环内@fatchul
不起作用,为 foreach() 提供的参数仍然无效
print_r($city);
分享结果@fatchul【参考方案2】:
您的 $city
变量包含一个 json 响应。解码吧。
$city = json_decode($city, true);
您现在有一个要循环的数组。
【讨论】:
以上是关于在codeigniter中打印geolocation api中的每个数据的主要内容,如果未能解决你的问题,请参考以下文章
Codeigniter 和 SQL/Haversine 公式