| Раздел: PHP, MySQL, веб-программирование | Автор: fox++ |
| E-mail: |
Www: http://foxweb.net.ru |
| Просмотров: 3644 | Дата: 21.12.2005 |
Иногда требуется показывать содержимое веб-страницы в зависимости от типа пользовательского браузера, потому что разные браузеры показывают некоторые виды содержимого по-разному. Страница, прекрасно работающая в IE, не показывается в Firefox Mozilla. Особенно это касается динамических страниц с использованием JavaScript. Следующий скрипт при запуске его из браузера автоматически определит название и версию браузера и загрузит соответствующую страницу.
// если это MSIE, то
if ($name = strstr ($HTTP_USER_AGENT, "MSIE"))
{
// выводим страницу для Internet Explorer
header ("Location: http://www.mysite.com/ie.php");
}
else
{
// если другой браузер
header ("Location: http://www.mysite/other.php");
}
?>
Как PHP скрипт определяет тип браузера? При запуске PHP-скрипта, ему посредством интерфейса CGI (интерфейс взаимодеиствяи браузера, сервера и серверных приложений) в переменной $HTTP_USER_AGENT будет сохранено название и версия браузера, заданные его разработчиком. Например, значение $HTTP_USER_AGENT может быть таким: "Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)", которое выдаётся браузером Internet Explorer 5 под Windows 98. Переменная напрямую доступна в PHP-скрипте в момент его вызова, поэтому никаких дополнительных преобразований (как например в Perl) не требуется. Функция strstr() ищет подстроку "MSIE" в переменной $HTTP_USER_AGENT. Если совпадение есть, то функция header ("Location: http://www.mysite.com/ie.php") даст браузеру указание загрузить страницу с соответствующим URL, иначе будет загружена другая страница.