Posts Tagged ‘ user agent

Определение браузера и ОС клиента

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