【问题标题】:Google map and key changed online谷歌地图和钥匙在线更改
【发布时间】:2011-03-15 19:28:06
【问题描述】:

我正在寻找希望帮助我解决这个奇怪问题的 php 专家。 下面添加的这个脚本有时效果很好。 我有三个域指向一个目录。 Google 地图要求每个域的 api 密钥都是唯一的。 我的脚本必须在线更改键值。 我看到来自 IE8 的页面总是正确显示,但在 Chrom 和 Firefox 中,这个脚本有问题,但并非总是如此。当然,我控制了页面的来源,并且脚本 src 应该是空的。 谢谢 祝你有美好的一天!

页面的HEAD中添加了完整的代码。

<?php
if ($_SERVER['HTTP_HOST']=='napuzaka.pl') 
    {echo "<script src='http://maps.google.com/maps?file=api&v=2&key=http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAYTZHyOQ5V62SeMKaQnfsmBTpouANZ5f-taQv7LHvODzA4dkDHBSIDoDMuDCbfgg0tAyoHhFajBNCJQ' type='text/javascript'></script>"; }
if ($_SERVER['HTTP_HOST']=='xn--napuaka-zwb.pl') 
    {echo "<script src='http://maps.google.com/maps?file=api&v=2&key=http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAYTZHyOQ5V62SeMKaQnfsmBSz8IVGRhEo79udyNR7B2dzTza61xRpT9lPIg18vhQmddrMIlSVereK3g' type='text/javascript'></script>";}
if ($_SERVER['HTTP_HOST']=='xn--przychodnia-na-puaka-yle.pl') 
    {echo "<script src='http://maps.google.com/maps?file=api&v=2&key=http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAYTZHyOQ5V62SeMKaQnfsmBTIBRlPbe0ldXIT_VQB31noUDT8mRReXxc12wAWIs4fuEXiTbsZ0HvViA' type='text/javascript'></script>";}
?>

【问题讨论】:

    标签: php google-maps google-maps-api-2


    【解决方案1】:

    $_SERVER['HTTP_HOST'] 在它不起作用的情况下打印出来并添加到 if... 这与浏览器如何解析 IDN(国际化域名)http://en.wikipedia.org/wiki/Internationalized_domain_name

    【讨论】:

    • 谢谢,我从 echo 改成了 print,但是当我从 Chrome 浏览这个页面时,这个问题仍然存在
    • 我不是这么说的。在这种情况下执行 echo $_SERVER['HTTP_HOST'] 并​​查看值。我确定这就是问题所在
    【解决方案2】:

    为什么不改用变量来控制域,然后用 switch 语句echo 那行?

    $page = $_SERVER['PHP_SELF'];
    
    switch ($page)
    {
    
    case 'http://xn--przychodnia-na-puaka-yle.pl': 
    print '<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;hl=en&amp;sensor=false&amp;key="ABQIAAAAYTZHyOQ5V62SeMKaQnfsmBTIBRlPbe0ldXIT_VQB31noUDT8mRReXxc12wAWIs4fuEXiTbsZ0HvViA" type="text/javascript"></script>';
    
    break;
    
    case 'http://napuzaka.pl': /* same with this case just different API Key*/ 
    break;
    
    case 'http://xn--napuaka-zwb.pl': /* same with this case just different API Key*/ 
    break;
    
    }
    

    此外,使用print 而不是echo 可以在此过程中节省一些内存,因为echo 函数有自己的微工厂,并且只有在打印变量或其中包含变量的文本时才应使用为了让它更快。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多