通过curl获取用户位置

时间:2014-02-18 20:16:21

标签: php curl geolocation

我很难通过Curl让用户定位。

我有这段代码:

$ip ='123.125.114.144';
$result ='Unkown' ;
$ch = curl_init();
$timeout = 5; // set to zero for no timeout
curl_setopt ($ch, CURLOPT_URL, 'http://www.iptolatlng.com/?ip='.$ip);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$ip_data = curl_exec($ch);
curl_close($ch);

if($ip_data && $ip_data->countryFullName != null)  //---the error is in this line
{
    $result = $ip_data->countryFullName;
}

echo $result;

但是我得到了这个错误:

  

注意:尝试在第29行的/mywebsite/index.php中获取非对象的属性   未知

出于测试目的,这是他们与随机ip http://www.iptolatlng.com/?ip=123.125.114.144

的链接

任何帮助都会因为出错而备受关注。

1 个答案:

答案 0 :(得分:1)

当您尝试访问对象类型的结果值时,

curl_exec会以字符串的类型返回请求的结果。 因为您的请求返回json字符串,所以您应该使用函数json_decode

示例:

$ip_data = curl_exec($ch);
$ip_obj = json_decode($ip_data);
echo $ip_obj->countryFullName;