Я ищу эксперта php, который хочет помочь мне в этой странной проблеме. Этот скрипт, добавленный ниже, иногда работает хорошо. У меня есть три домена, указывающие на один каталог. Карты Google требуют ключ API, уникальный для каждого домена. Мой скрипт должен изменить значение ключа онлайн. Я вижу, что страницы из IE8 всегда отображаются правильно, но из Chrom и Firefox этот скрипт имеет проблемы, но не всегда. Конечно я контролировал источник страницы и там был пустой, где должен быть скрипт src. Спасибо Хорошего дня!
В заголовок страницы добавлен полный код.
<?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>";} ?>
Почему бы вместо этого не использовать переменную для управления доменом, а затем echo эту строку с оператором 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&v=2&hl=en&sensor=false&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 имеет свою собственную микро-фабрику и должна использоваться, только если вы печатаете переменные или текст с переменными в нем для ради того, чтобы сделать это быстрее.
print
Просто напечатайте $ _SERVER ['HTTP_HOST'] в ситуациях, когда он не работает, и добавьте их в if ... Это связано с тем, как браузеры анализируют IDN (интернационализированное доменное имя) http://en.wikipedia.org/wiki/Internationalized_domain_name