Небольшая штукенция, определяет браузер\ос\тип браузера по юзерагенту (текущему из $_SERVER['HTTP_USER_AGENT']б или из переданного в конструкторе параметра)
Что умеет: (+/-)
<?php
browser::autoDetect() // проводит все необходимые манипуляции для общего опознания, возвращает тип браузера (touch|web|wap|bot|NotDetect)
browser::is_android() // да|нет
browser::is_ios() // да|нет
browser::is_winphone() // да|нет
browser::is_blackberry() // да|нет
browser::is_bada() // да|нет
browser::is_touch() // да|нет
browser::is_pc() // да|нет
browser::is_wap() // да|нет
browser::is_bot() // да|нет
browser::viewType() // возвращает тип браузера (touch|web|wap|bot|NotDetect)
browser::viewName() // возвращает удобоваримое имя браузера, например Chrome/44.0 или Samsung GT-I9505
browser::viewSubName() // возвращает имя операционной системы (если возможно), например Windows 10 x64 или iOS 8.4
browser::viewFullString() // возвращает юзерагент
browser::Locale() // определяет локаль системы. принимает 1 аргумент = строку аналогичную по содержанию $_SERVER['HTTP_ACCEPT_LANGUAGE'], при отсутствии аргумента берет $_SERVER['HTTP_ACCEPT_LANGUAGE'] из текущего массива $_SERVERЖивой пример, он же тест: http://smartoff.net/test/browser-detect/
По моей статистике, определяет 95% девайсов, но я его все еще порой дополняю