Периодически перед любым программистом становится задача точного определение браузера, который использует пользователь. Сегодня наткнулся на отличный класс для точного определения браузера на PHP. Причем, он может определить не только браузер пользователя, но и определить операционную систему пользователя.
Определение происходит на основе заголовка User-Agent. То есть по сути никаких новых методик, но впечатляет количество определяемых браузеров. Также класс достаточно удобен в использовании.
Ссылка на источник: chrisschuld.com
Ссылка на архив: Browser-1-9.zip
Пример использования (из комментариев к классу):
$browser = new Browser();
if( $browser->getBrowser() == Browser::BROWSER_FIREFOX && $browser->getVersion() >= 2 ) {
echo 'You have FireFox version 2 or greater';
}
На данный момент (23.12.2011 v1.9) определяются следующие браузеры:
- Opera (Browser::BROWSER_OPERA)
- WebTV (Browser::BROWSER_WEBTV)
- NetPositive (Browser::BROWSER_NETPOSITIVE)
- Internet Explorer (Browser::BROWSER_IE)
- Pocket Internet Explorer (Browser::BROWSER_POCKET_IE)
- Galeon (Browser::BROWSER_GALEON)
- Konqueror (Browser::BROWSER_KONQUEROR)
- iCab (Browser::BROWSER_ICAB)
- OmniWeb (Browser::BROWSER_OMNIWEB)
- Phoenix (Browser::BROWSER_PHOENIX)
- Firebird (Browser::BROWSER_FIREBIRD)
- Firefox (Browser::BROWSER_FIREFOX)
- Mozilla (Browser::BROWSER_MOZILLA)
- Amaya (Browser::BROWSER_AMAYA)
- Safari (Browser::BROWSER_SAFARI)
- iPhone (Browser::BROWSER_IPHONE)
- iPod (Browser::BROWSER_IPOD)
- Google’s Android(Browser::BROWSER_ANDROID)
- Google’s Chrome(Browser::BROWSER_CHROME)
- GoogleBot(Browser::BROWSER_GOOGLEBOT)
- Yahoo!’s Slurp(Browser::BROWSER_SLURP)
- W3C’s Validator(Browser::BROWSER_W3CVALIDATOR)
- BlackBerry(Browser::BROWSER_BLACKBERRY)
И следующие платформы:
- Windows (Browser::PLATFORM_WINDOWS)
- Windows CE (Browser::PLATFORM_WINDOWS_CE)
- Apple (Browser::PLATFORM_APPLE)
- Linux (Browser::PLATFORM_LINUX)
- Android (Browser::PLATFORM_ANDROID)
- OS/2 (Browser::PLATFORM_OS2)
- BeOS (Browser::PLATFORM_BEOS)
- iPhone (Browser::PLATFORM_IPHONE)
- iPod (Browser::PLATFORM_IPOD)
- BlackBerry (Browser::PLATFORM_BLACKBERRY)
- FreeBSD (Browser::PLATFORM_FREEBSD)
- OpenBSD (Browser::PLATFORM_OPENBSD)
- NetBSD (Browser::PLATFORM_NETBSD)
- SunOS (Browser::PLATFORM_SUNOS)
- OpenSolaris (Browser::PLATFORM_OPENSOLARIS)
- iPad (Browser::PLATFORM_IPAD)
Согласитесь, список впечатляет, не правда ли?)
Вот спасибо. Как раз искал такой класс =)
Тоже кстати юзаю этот класс. Очень удобно!
то что надо. Спасибо!
Классный Класс! Я новичёк в php, но этот скрипт подключил и пользуйся
getBrowser(); getPlatform();
Взял на себя смелость отредактировать ваш комментарий. Пожалуйста, воздержитесь от такой ярой рекламы вашего сайта.
Какую использовать библиотеку для точного определения браузера и операционной системы пользователя по заголовкам?
Да эту из топика и используйте, почему нет?
Сегодня наткнулся на отличный класс для точного определения браузера на PHP.
Рад что помог =)
Что-то даже пример, приведённый в статье почему-то не срабатывает…
Подключил через require_once. Не срабатывает. Включил отображение всех ошибок в htacess.
Меня этот класс интересует просто тупо определить стоковый андроид браузер и подменить шрифт для него…
У кого всё работает, не подскажете, как из него эту переменную достать, дальше я сам соображу )))
Чесно сказать даже на знаю почему у вас не работает. Проверил у себя:
Работает, с планшета видно
string(7) "Android" string(3) "4.3"
Класс хороший, метод неплохой, но есть одно НО!, определение не будет точным в случае если установлен например IRON-браузер, в котором заменен User-Agent, (при установке предлагает выбрать кем себя отображать), и тут php в принципе бессилен, тк заголовки можно отправить любые.
Данную проблему надо решать через js, комплексно проверяя особенности браузеров, срабатывают или нет какие либо стили css, проверть данные объекта navigator, например для смартфонов можно проверить уровень заряда батареи, на ПК этого сделать нельзя, и тд.