2017-08-10 158 views
0

我把这个代码计算器来计算地址:PHP计算距离 - 在线

$from = urlencode($from); 
    $to = urlencode($to.', Челябинс'); 
    $data = file_get_contents('http://maps.googleapis.com/maps/api/distancematrix/json?origins='.$from.'&destinations='.$to.'&language=ru-RU&sensor=false&mode=driving');//&key=AIzaSyDAJ05io1966D_KmF7lbRsucehr8GtUBqk'); 
    $data = json_decode($data); 
    $time = 0; 
    $distance = 0; 
    foreach($data->rows[0]->elements as $road) { 
     $time += $road->duration->value; 
     $distance += $road->distance->value; 
    } 
    $table[0]=$distance; 
    $table[1]=$time; 

这是工作非常好,一旦我有我的计算机上的文件。 但是当我把它放在网上,它不再工作。

有人会想到会发生什么问题吗? 我也读过API,我们需要一个密钥,但在我的情况下,它来自我想要使用它的HTML/PHP网站。

在此先感谢您的帮助

编辑:

能找到有关此问题的一个很好的职位:

[Why doesn't file_get_contents work?

其实这个问题是(如果我理解正确)由于服务器的参数,我收到以下消息:

警告:file_get_contents()函数:HTTP://封装在 服务器配置中禁用于allow_url_fopen = 0

这是一个参数,我们可以修改我们自己还是我们要问的网络托管商对其进行修改?

+0

”不再工作“<--- _它不再工作了,你看到什么与你期望看到什么。谷歌地图配额超过了 –

+0

?细则会告诉你每个时期你可以拨打多少电话(免费)。同样,来自API调用的实际响应可能有助于确定wtf。 – YvesLeBorg

+0

那么,一个朋友告诉我每天限额是2000(实际上我查了,这是25.000)......我每天可能会有10个。 我如何获得API响应,我会检查它。 –

回答

0

那么正如问题所示,需要更改PHP.INI文件中的allow_url_fopen参数。我做到了,现在工作得很好。 在我的情况(hostpapa hosting)我可以自己做。 “