在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 chk print_r($city); echo $c在循环内@fatchul 不起作用,为 foreach() 提供的参数仍然无效 print_r($city);分享结果@fatchul【参考方案2】:

您的 $city 变量包含一个 json 响应。解码吧。

$city = json_decode($city, true); 

您现在有一个要循环的数组。

【讨论】:

以上是关于在codeigniter中打印geolocation api中的每个数据的主要内容,如果未能解决你的问题,请参考以下文章

PHP 打印最后一个查询|ÂCodeIgniter

打印最后一个查询| CodeIgniter

Codeigniter 和 SQL/Haversine 公式

如何关闭 mysql 错误在 CodeIgniter 中显示到屏幕

如何在codeigniter中搜索后保留选定的框选项

如何在codeigniter中使用两个不同的表只显示一次数据