За последние 24 часа нас посетили 17443 программиста и 1611 роботов. Сейчас ищут 953 программиста ...

Определение мобильных устройств без заморочек

Тема в разделе "Решения, алгоритмы", создана пользователем nerru86, 17 июл 2014.

  1. nerru86

    nerru86 Новичок

    С нами с:
    17 июл 2014
    Сообщения:
    1
    Симпатии:
    0
    Доброго времени суток,

    Хочу поделиться способом детекта мобильных устройств реализованного с помощью PHP и постоянно обновляемой базой устройств. Детектор созданный компанией 51Degrees.com крайне прост в развертывании как на новых так и на уже существующих проектах, код распространяется по лицензии Mozilla Public License 2 и совместим с коммерческими и открытыми проектами.

    Все что нужно - скачать детектор с http://sourceforge.net/projects/fiftyone/ и сделать инклуд 2х файлов на страницах где необходимо определять мобильные устройства (либо в подключаемый header):
    Код (Text):
    1.  
    2. require_once 'path/to/core/51Degrees.php';
    3. require_once 'path/to/core/51Degrees_usage.php';
    где path/to/core это путь до дирктории core, содержащей код детектора. После этого к информации об устройстве можно обратится через массив $_51d. На пример:
    Код (Text):
    1.  
    2. if ($_51d['IsMobile'] == TRUE)
    3. {
    4.     //Код для мобильного устройства или редирект.
    5. }
    Полный список поддерживаемых свойств: Property Dictionary. Так же доступны плагины для Wordpress и Drupal.

    Бонусом идет PHP скрипт оптимизации изображений доступный через ImageHandler.php. Скрипт имеет несколько настроек, таких как максимальная высота и ширина и может работать в автоматическом режиме:
    Код (Text):
    1.  
    2. <img src="E.gif" data-src="ImageHandler.php?src=Test.jpg&width=auto" >
    Ну и самое главное: Этот детектор не полагается на регулярные выражения так что точность и скорость обнаружения будет заметно выше при большем количестве устройств в базе. Регулярные выражения применяются при обработке файла на серверах 51Degrees но не в процессе локальногр детекта на серверах клиентов. Узнать как работает детектор.

    Данные об устройствах постоянно обновляются. От 100 до 250 новых устройств добавляется в базу каждую неделю. Файл с данными доступен в 3х видах: Lite, Premium и Enterprise. Lite - бесплатный файл с 30 000 устройств и 50 свойствами для каждого устройства, поставляется со всеми дистрибутивами по умолчанию.

    Более поднобно можно ознакомиться тут: http://ekbit.ru/Почему-Важно-Определять-Мобильные-Устройства-2014. Текст на Русском.

    Официальная документация с примерами и пояснениями тут: http://51degrees.com/Support/Documentation/PHP

    Надеюсь эта информация будет полезна всем PHP разработчикам.

    С уваженим,
    Михаил