Определение версии браузера

Вчера возникла задача определения версии браузера посетителя сайта, чтобы выводить сообщение об устаревшей версии браузера. Гуглинг не дал готового кода. функция get_browser вообще нормально не работает. Пришлось написать PHP-код определения весии браузера самому. Итак, задача из HTTP-заголовка UserAgent получить название и версию браузера пользователя, а затем сравнить версию с некими барьерными версиями (по каждому браузеру). Если браузер старше барьерных версий, будем выводить сообщение об ошибке.

Детектить версии нужно только популярных в СНГ немобильных версий браузеров, поэтому в моем коде определяется только Opera, Firefox, Safari, Internet Explorer и Google Chrome. Если вам потребуется определить версии большего числа браузеров, код можно легко дополнить.

Чтобы не раскидывать функции по проекту, весь код я оформляю в классы. Создадим статический класс, в котором будут два метода: определение версии браузера и сравнение версии с данными барьерными версиями по каждому из браузеров. Назовем его BrowserUtils.

Класс состоит из двух методов: определение браузера и его версии и сравнении полученной версии с пороговыми версиями по разным браузерам. Использовать класс очень просто:

Единственный нюанс по коду есть у Safari. Все версии этого браузера всегда посылали в UserAgent тег Safari/build, где buld — версия их движка. Это большая первая цифра, например 528.16. Так версии Safari отображаются в Google Analytics. Но более поздние версии стали писать свою версию в теге Version. Выглядит это примерно так: Version/4.0.2.

Так как мне требовалось выводить версию пользователю, я использовал код считывания версии из тега Version, а для старых версий не детектит номер версии.

Скачать PHP-код определения версии браузера.

Об авторе Валера Леонтьев

Программист PHP/MySQL.

Запись опубликована в рубрике IT, PHP, Web, Все рубрики с метками , . Добавьте в закладки постоянную ссылку.

Один комментарий на «Определение версии браузера»

  1. Валерий, спасибо за скрипт.
    Позвонила сегодня бабушка и пожаловалась, что меню де на сайте не видит. Оказалось, что у нее IE 6. Я на него вообще не смотрел, когда сайт разрабатывал. Но реагировать на таких товарищей нужно и при этом культурно (это и есть «покупатель всегда прав»).
    Скачал Ваш скрипт, сделал тестовую страницу, чтобы посмотреть что он выдает на проверенных мной браузерах. И все, остальное — дело пяти минут (нужно было правильные версии указать и все).
    Теперь я относительно спокоен за таких людей.

Добавить комментарий