codeigniter file_get_content或curl在我们的开发服务器

时间:2015-09-23 14:02:11

标签: php codeigniter google-maps curl file-get-contents

需要获取纬度和经度的位置详细信息, 它只是在其他服务器上工作 - 正常运行,但尝试与客户端开发服务器获取错误,我已经尝试了这个约4小时 - 直到没有得到结果。协助会很有帮助。 这是我的代码:

public function index() {
    echo $this->getLocation('39.2323', '-97.3828');
}

function getLocation($lat, $long) {
    $url = "http://maps.googleapis.com/maps/api/geocode/json?latlng=" . trim($lat) . "," . trim($long) . "&sensor=false";
    $json = @file_get_contents($url);
    $data = json_decode($json);
    $status = $data->status;
    $address = '';
    if ($status == "OK") {
        $address = $data->results[0]->formatted_address;
    }
    return $address;
}

我收到如下错误:

  

遇到PHP错误严重性:警告消息:   的file_get_contents(http://maps.googleapis.com/maps/api/geocode/json?latlng=39.2323,-97.3828&sensor=false)   [function.file-get-contents]:无法打开流:连接定时   出

     

文件名:webservice / Test.php行号:17

     

回溯:

     

文件:   /home/colanful/public_html/hoa/application/controllers/webservice/Test.php   行:17功能:file_get_contents

     

文件:   /home/colanful/public_html/hoa/application/controllers/webservice/Test.php   行:12功能:getaddress

     

文件:/home/colanful/public_html/hoa/index.php行:292功能:   require_once

1 个答案:

答案 0 :(得分:0)

看起来您需要更改客户端开发服务器上的ini设置。

来自@ Aillyn的回答:

您正在寻找的设置是allow_url_fopen。

你有两种方法可以绕过它而不用改变php.ini,其中一种是使用fsockopen(),另一种是使用cURL。

我建议使用cURL而不是file_get_contents(),因为它是为此而构建的。