Важная информация
Показано с 1 по 3 из 3

Тема: Способ определения мобильных устройств на PHP.

  1. #1 Способ определения мобильных устройств на PHP. 
    Новичок
    Регистрация
    23.07.2014
    Сообщений
    1
    Сказал(а) спасибо
    0
    Поблагодарили 3 раз(а) в 1 сообщении
    Добрый день,

    Не так давно я создавал PHP модуль для знакомого в котором требовалось определить мобильное устройство, собрать о нем данные и записать их в отдельную таблицу базы. Порывшись в Рунете я обнаружил что в большинстве своём люди используют регулярные выражения для определения устройств. Это не совсем то, что мне было нужно по скольку определялись далеко не все девайсы да и информации было не достаточно. Пришлось обратится за помощью к англоязычной части интернета. Решение нашлось быстро и оказалось эффективным. Хочу поделиться находкой с Рунетом т.к это очень сильно упрощает жизнь когда нужно учитывать мобильные устройства в веб проекте.

    Итак, решение называется [Ссылки могут видеть только зарегистрированные пользователи. ]. Помимо PHP есть реализации на C, .NET, Java, Python и Perl. Код детектора является Open Source проектом и распространяется по лицензии Mozilla Public License 2, т.е может использоваться как с открытыми так и коммерческими проектами.

    Инструкция по установке можно найти тут ([Ссылки могут видеть только зарегистрированные пользователи. ]). Суть установки сводится к 3м шагам:
    1. Скачать детектор с sourceforge.
    2. Распаковать в дикекторию на сервере.
    3. Подключить 2 файла:

    PHP Code:
    1. require_once 'path/to/core/51Degrees.php';
    2. require_once 'path/to/core/51Degrees_usage.php';


    где path/to/core - путь до директории core, содержащей код определителя устройств.

    Что дальше и что это даёт?

    После подключения вся информация об устройстве помещается в массив $_51d.
    Чтобы определить является ли устройство мобильным:
    PHP Code:
    1. if ($_51d['IsMobile'] == TRUE)
    2. {
    3.     //Девайс мобильный - редирект или другой css.
    4. }

    - Получить информацию о платформе (определяет так же и десктоп платформы):
    PHP Code:
    1. echo "<p>ОС: ".$_51d['PlatformName'].", компании ".$_51d['PlatformVendor'].", версии ".$_51d['PlatformVersion']."</p>";

    - Получить информацию о браузере пользователя:
    PHP Code:
    1. echo "<p> Браузер: ".$_51d['BrowserName'].", компании: ".$_51d['BrowserVendor'].", версия браузера: ".$_51d['BrowserVersion'].". Браузер поддерживает HTML версии ".$_51d['HtmlVersion'].". Браузер работает на движке: ".$_51d['LayoutEngine']."</p>";

    - Разрешение экрана:
    PHP Code:
    1. echo "<p>Ширина: ".$_51d['ScreenPixelsWidth'].", высота ".$_51d['ScreenPixelsHeight']."</p>";


    И еще очень много полезного. Все доступные свойства (с описанием и типом информации) для устройств можно посмотреть в [Ссылки могут видеть только зарегистрированные пользователи. ].

    Чем это решение отличается от других?
    1. Используются только важные части HTTP заголовков.
    2. Поиск осуществляется без использования регулярных выражений, по этому он быстрее и точнее. [Ссылки могут видеть только зарегистрированные пользователи. ].
    3. База данных с устройствами выпускается в 3х видах, в зависимости от количества требуемой информации об устройстве. Lite версия бесплатна, поставляется по умолчанию и содержит 30 000 наиболее популярных устройств с 50 свойствами на устройство.
    4. База постоянно обновляется. В базе присутствуют не только смартфоны и телефоны, но так же и книгочиталки, смарт ТВ, планшеты, консоли и носимая электроника (на пример: Google Glass).

    Как дополнительная плюшка - во все дистрибутивы включен [Ссылки могут видеть только зарегистрированные пользователи. ], который может автоматически изменять размер изображений и графики под размеры экрана пользователя. Изображения разных размеров кэшируются, так что работает он быстро. Используется следующим образом:

    1. Подключается скрипт после тэга <body>
    JavaScript Code:
    1. <script src="path/to/core/51Degrees.core.js.php" ></script>
    2. <script>
    3.   new FODIO();
    4. </script>


    2. Ссылки на картинки меняют форму:
    HTML Code:
    1. <[Ссылки могут видеть только зарегистрированные пользователи. ] src="E.gif" data-src="ImageHandler.php?src=Test.jpg&width=auto" >

    где E.gif это пустой прозрачный квадратик, а ImageHandler.php это файл с кодом изменения размеров изображения с папке core. В качестве параметра ( после "=" ) передаётся относительное местоположение файла, т.е если файл на директорию выше кода то путь указывается как
    HTML Code:
    1. ImageHandler.php?src=../Test.jpg&width=auto.


    В архиве с детектором есть папка example в которой представлены примеры.

    Надеюсь, что эта информация вам пригодится.

    С уважением,
    Михаил
    Ответить с цитированием  
     

  2. 3 пользователя(ей) сказали cпасибо:

    >Quiet Snow< (23.07.2014), rekby (24.07.2014), Абадябер (24.07.2014)

  3. #2  
    Супер модератор Аватар для >Quiet Snow<
    Регистрация
    11.04.2011
    Адрес
    Планета земля
    Сообщений
    3,913
    Сказал(а) спасибо
    1,842
    Поблагодарили 977 раз(а) в 835 сообщениях
    Записей в блоге
    1
    nerru86, спасибо за инфу, будет полезна многим.
    Обучение прикладному программированию(по skype), качественно, недорого, 18+, вопросы в личку.
    «Если вы ничего не сделаете, я уверяю вас, ничего и не произойдёт» © Жак Фреско
    Ограниченно модерирую.
    Ответить с цитированием  
     

  4. #3  
    Профи Аватар для rekby
    Регистрация
    08.04.2014
    Сообщений
    121
    Сказал(а) спасибо
    2
    Поблагодарили 38 раз(а) в 28 сообщениях
    Записей в блоге
    1
    Да, на перспективу интересно.
    Ответить с цитированием  
     

Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Алгоритм определения числа путей длины 3 (в дереве)
    от aleksandartyom в разделе Общие вопросы программирования
    Ответов: 8
    Последнее сообщение: 21.03.2014, 15:22
  2. Переназначение кнопок внешних устройств пк
    от N501071 в разделе Общие вопросы программирования
    Ответов: 1
    Последнее сообщение: 29.11.2013, 21:35
  3. Ответов: 2
    Последнее сообщение: 30.09.2013, 22:23
  4. Шаблон для мобильных устройств
    от Konstantin Shcherba в разделе Архив
    Ответов: 13
    Последнее сообщение: 14.03.2011, 19:40
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •