我做了一个简短的代码来使用Google Maps API计算距离。我的问题是代码在一台服务器上工作正常,但在另一台服务器上则不然。它是从一个地方复制到另一个地方的相同代码。我不知道出了什么问题。谁能帮我?
$server="https://maps.googleapis.com/maps/api/directions/json?origin=".$from.",Sweden&destination=".$to.",Sweden";
if($stream = fopen( $server,r)){
$klart=json_decode(stream_get_contents($stream),true);
fclose($stream);
$distans = $klart['routes'][0]['legs'][0]['distance'][text];
$kilometer=split(" ",$distans);
$km = $kilometer[0];
$kostnad = $km * ((2.1*1.15)*1.25)/5;
}
谢谢!安德斯
编辑1:谢谢大家的评论。似乎是一个干扰了html表单的javascript。我添加了一个脚本来自动完成城市(变量$to和$from)。当我注释掉javascript时,php代码工作正常。
请原谅添加评论的延迟,出现了一些紧急的事情,我不得不离开。最初,当我运行代码时,抛出了几个错误 - 除了缺乏$from
和$to
之外,还有两个未定义的常量~即r
和text
$from='malmo';
$to='stockholm';
$server="https://maps.googleapis.com/maps/api/directions/json?origin=".$from.",Sweden&destination=".$to.",Sweden";
/* the mode `r` needs to be quoted */
if($stream = fopen( $server,'r')){
$klart=json_decode(stream_get_contents($stream),true);
fclose($stream);
/* the field `text` also needs to be quoted - unless it really is a constant defined elsewhere */
$distans = $klart['routes'][0]['legs'][0]['distance']['text'];
/* as `split` is now deprecated, use preg_split & split string on a space `'s` */
$kilometer=preg_split('@'s@',$distans);
$km = $kilometer[0];
$kostnad = $km * ((2.1*1.15)*1.25)/5;
echo $kostnad;
}
outputs:
369.495