1

我正在寻找想要帮助我解决这个奇怪问题的 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>";}
?>
4

2 回答 2

0

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

于 2011-03-15T19:37:26.490 回答
0

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

$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而不是节省一些内存,因为该函数有自己的微工厂,并且只有在打印变量或其中包含变量的文本时才应该使用它以使其更快。echoecho

于 2011-04-29T09:29:13.027 回答