• Главная»
  • Уроки»
  • PHP»
  • Библиотека для определения типа и модели устройства на PHP

Библиотека для определения типа и модели устройства на PHP

Mobile Detect это легковесный PHP класс для определения типа мобильного устройства, (включая и планшеты). Для определения устройства происходит анализ опции User-Agent и HTTP заголовков.

Общие возможности

  • isMobile() - определяет является ли устройство мобильным

  • isTablet() - определяет является ли устройство планшетом

Возможности библиотеки

Для проверки мы можем заюзать следующие методы:

Определение телефона

  • isiPhone()
  • isBlackBerry()
  • isHTC()
  • isNexus()
  • isDellStreak()
  • isMotorola()
  • isSamsung()
  • isSony()
  • isAsus()
  • isPalm()
  • isGenericPhone()

Определение планшета

  • isBlackBerryTablet()
  • isiPad()
  • isKindle()
  • isSamsungTablet()
  • isHTCtablet()
  • isMotorolaTablet()
  • isAsusTablet()
  • isNookTablet()
  • isAcerTablet()
  • isYarvikTablet()
  • isGenericTablet()

Определение операционной системы

  • isAndroidOS()
  • isBlackBerryOS()
  • isPalmOS()
  • isSymbianOS()
  • isWindowsMobileOS()
  • isiOS()
  • isFlashLiteOS()
  • isJavaOS()
  • isNokiaOS()
  • iswebOS()
  • isbadaOS()
  • isBREWOS()

Определение мобильного браузера

  • isChrome()
  • isDolfin()
  • isOpera()
  • isSkyfire()
  • isIE()
  • isFirefox()
  • isBolt()
  • isTeaShark()
  • isBlazer()
  • isSafari()
  • isMidori()
  • isGenericBrowser()

Примеры

// Подключение и инициализация класса
require_once 'Mobile_Detect.php';
$detect = new Mobile_Detect;

// Если мобильное устройство (телефон или планшет).
if ( $detect->isMobile() ) {

}

// Если планшет
if( $detect->isTablet() ){

}

// Если не планшет и не мобильное устройство
if( $detect->isMobile() && !$detect->isTablet() ){

}

// Проверка специфической платформы:
if( $detect->isiOS() ){

}

if( $detect->isAndroidOS() ){

}

// Так же можете воспользоваться методом is() для определения каких-то свойств.
// ВНИМАНИЕ: данный метод работает в BETA-режиме, некоторые ключевые слова могут быть изменены в следующих релизах
$detect->is('Chrome')
$detect->is('iOS')
$detect->is('UC Browser')
// [...]

// Имитируем устройства, используя setUserAgent():
$userAgents = array(
'Mozilla/5.0 (Linux; Android 4.0.4; Desire HD Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19',
'BlackBerry7100i/4.1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/103',
// [...]
);
foreach($userAgents as $userAgent){

 $detect->setUserAgent($userAgent);
 $isMobile = $detect->isMobile();
 $isTablet = $detect->isTablet();
}

// Извлекаем версию version() устройства.
// ВНИМАНИЕ: данный метод работает в BETA-режиме, некоторые ключевые слова могут быть изменены в следующих релизах
$detect->version('iPad'); // 4.3 (float)
$detect->version('iPhone') // 3.1 (float)
$detect->version('Android'); // 2.1 (float)
$detect->version('Opera Mini'); // 5.0 (float)
// [...]

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: http://mobiledetect.net/
Перевел: Станислав Протасевич
Урок создан: 15 Января 2014
Просмотров: 45383
Правила перепечатки


5 последних уроков рубрики "PHP"

  • Фильтрация данных с помощью zend-filter

    Когда речь идёт о безопасности веб-сайта, то фраза "фильтруйте всё, экранируйте всё" всегда будет актуальна. Сегодня поговорим о фильтрации данных.

  • Контекстное экранирование с помощью zend-escaper

    Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.

  • Подключение Zend модулей к Expressive

    Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.

  • Совет: отправка информации в Google Analytics через API

    Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.

  • Подборка PHP песочниц

    Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.

или авторизуйтесь, чтобы добавлять комментарии, оценивать уроки и сохранять их в личном кабинете
  • 15 Января 2014 02:17
    vestber
    слишком сложно
  • 15 Января 2014 03:23
    Quber
    Прям для извращенцев. А есть ли более простой класс что то типа isPC() isTablet() isPhone()
    • 15 Января 2014 06:27
      enerwiser
      Общие возможности isMobile() - определяет является ли устройство мобильным isTablet() - определяет является ли устройство планшетом в самом начале класса в общих возможностях и есть это. А кому надо, тот может и более детально построить условие
      if (isMobile()) {
      //Ваш isPhone()
      } else if (isTablet()) {
      //Ваш isTablet()
      } else {
      //Ваш isPC()
      }
      
  • 15 Января 2014 05:07
    Tao309
    Странная проверка, каждый тип проверять, выйдет большой список условий.
  • 15 Января 2014 13:57
    rubyx
    Полезная штука, но почти не нужная так как браузеры в смартфонах способны уже читать сайты полноценно. Если только пригодится для каких фишек для hardware... У кого ещё Аndroid 4.0.4 смотрите обновления своего смартфона :)
  • 15 Января 2014 16:53
    semsev
    Господи нахера на ифах все городить
    switch(){}
    же для этого есть
    • 16 Января 2014 19:14
      neverfan
      Согласен, это полный бред... нужен один метод на каждую из групп нужд.
  • 20 Февраля 2014 16:55
    spiritabsolute
    Затестил на работе этот класс, почему то зайдя с планшета, он меня определил и как мобильный, и как планшет. Но ОС андройд определил верно.
  • 3 Сентября 2015 15:27
    alexey_yarkov
    Не работает у меня. Всегда false показывает
^ Наверх ^