如何使用curl php从纬度和经度获得完整的地址?

时间:2017-08-01 07:31:09

标签: php curl geolocation geocode

我想从纬度和经度获取地址,但我想使用curl。没有卷曲在localhost工作正常。但是当我在服务器中运行它时。

显示错误此错误: -

  

file_get_contents()[function.file-get-contents]:https://在服务器配置中通过allow_url_fopen = 0 禁用包装器。

所以决定,现在我必须使用curl获取地址。

任何人都可以帮助我如何实现这一功能在这里我尝试过: -

$latitude= 30.9003971459;
$longitude= 77.0072737194;
$url = 'https://maps.google.com/maps/api/geocode/json?latlng='.trim($latitude).','.trim($longitude).'&key=XXXXX';
$curl = curl_init();

1 个答案:

答案 0 :(得分:1)

似乎tu work work me ...执行url(CURL_EXEC)后,您需要解码JSON返回值。我刚刚在此示例中选择了格式化地址

<?php
$url="https://maps.google.com/maps/api/geocode/json?latlng=51.451411,3.566113&key=AIzaSyAgo83mZXhQCFzF2Y3pQYJUC1ivAXKwiX4";
$curl_return=curl_get($url);

$obj=json_decode($curl_return);

echo $obj->results[0]->formatted_address;

function curl_get($url,  array $options = array())
{
    $defaults = array(
        CURLOPT_URL => $url,
        CURLOPT_HEADER => 0,
        CURLOPT_RETURNTRANSFER => TRUE,
        CURLOPT_TIMEOUT => 4
    );

    $ch = curl_init();
    curl_setopt_array($ch, ($options + $defaults));
    if( ! $result = curl_exec($ch))
    {
        trigger_error(curl_error($ch));
    }
    curl_close($ch);
    return $result;
}
?>