Определение браузера и ОС клиента
November 18, 07 by TracKerВ PHP есть встроенная функция get_browser(), которая позволяет определить каким browser’ом пользуется клиент.
mixed get_browser ( [string $user_agent [, bool $return_array]] )
Все бы было хорошо, но данная функция привязана к INI файлу (browscap.ini), который не поставляется в стандартной сборке PHP, требует определенной настройки и периодического обновления INI файла, содержащего информация о браузерах. Все это обычно не работает на хостингах, а если и работает, то browscap.ini, скорее всего, очень древний и толку от него мало.
В поисках решения я обнаружил интересный проект Джонатана Стоппани “Browser Capabilities PHP Project“. Автор проекта написал класс который служит заменой функции get_browser(). Класс называется Browscap и позволяет подключить browscap.ini динамически, он преобразует browscap.ini в понятный для PHP массив и далее работает с уже ним, но коме этого он умеет автоматически производить обновление библиотеки browscap.ini через определенный промежуток времени.
Кроме всего выше перечисленного класс позволяет определить такие данные о браузере клиента как Платформу (ОС), Поддержку Java и JavaScript, Робот ли клиент (Google, Yandex) и много другого.
Пример:
// Loads the class require 'Browscap/Browscap.php'; // Creates a new Browscap object (loads or creates the cache) $bc = new Browscap('Browscap/cache'); // Gets information about the current browser's user agent $current_browser = $bc->getBrowser(); // Output the result print_r($current_browser);
Результат выполнения:
Array ( [browser_name] => Opera/9.23 (Windows NT 5.1; U; ru) [browser_name_regex] => ^opera/9\.2.* \(windows nt 5\.1.*\).*$ [browser_name_pattern] => Opera/9.2* (Windows NT 5.1*)* [Parent] => Opera 9.2 [Platform] => WinXP [Win32] => 1 [Browser] => Opera [Version] => 9.2 [MajorVer] => 9 [MinorVer] => 2 [Frames] => 1 [IFrames] => 1 [Tables] => 1 [Cookies] => 1 [BackgroundSounds] => 1 [JavaApplets] => 1 [JavaScript] => 1 [CSS] => 2 [CssVersion] => 2 [supportsCSS] => 1 [Alpha] => [Beta] => [Win16] => [Win64] => [AuthenticodeUpdate] => [CDF] => [VBScript] => [ActiveXControls] => [Stripper] => [isBanned] => [WAP] => [isMobileDevice] => [isSyndicationReader] => [Crawler] => [AOL] => [aolVersion] => 0 [netCLR] => [ClrVersion] => 0 )
Browscap качаем тут: http://garetjax.info/projects/browscap/#download
Сам browscap.ini можно взять тут: http://browsers.garykeith.com/downloads.asp