Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Определение мобильных устройств.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: В помощь Веб разработчикам.
nerru86
Отправлено: 23 Июля, 2014 - 14:40:15
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Июль 2014  


Помог: 0 раз(а)




Добрый день,

Хочу поделиться с вами решением проблемы определения устройств, обращающихся к сайту, которое сэкономит кучу времени и сил. Я сам, образно выражаясь, набил кучу шишек пока искал приемлемый вариант.

51Degrees Device Detector это OpenSource детектор устройств. Распространяется по лицензии Mozilla Public License 2 и может быть использован как в открытых, так и в коммерческих проектах. Доступны дистрибутивы на PHP, Java, C, .NET, Python и Perl.

Для всех платформ процесс установки сведен к нескольким простым действиям. Для примера возьмём PHP версию детектора: PHP Getting Started.

Установка:

1. Скачайте дистрибутив с sourceforge.
2. Распакуйте архив в директорию на сервере.
3. Подключите 2 файла к страницам, на которых нужно определять устройства (либо в подключаемый header):

PHP:
скопировать код в буфер обмена
  1. require_once 'path/to/core/51Degrees.php';
  2. require_once 'path/to/core/51Degrees_usage.php';


Информация об устройстве:

Теперь при обращении к веб сайту устройство будет определено и вся доступная информация будет помещена в переменную $_51d. На пример:

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


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


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


Полный список свойств доступных для устройств, с описанием и типом данных, можно найти на странице Property Dictionary. В зависимости от потребностей файл с данными распространяется в 3 редакциях. Lite версия поставляется бесплатно по умолчанию с каждым дистрибутивом и содержит более 30 000 наиболее популярных устройств с 50 свойствами на устройство.

Для других платформ:

Документацию для других поддерживаемых платформ можно найти на странице с Документацией. Документация на английском, но если нужна помощь в настройке или установке Вы можете написать в эту тему и я постараюсь помочь. Так же Вы можете связаться со службой поддержки (Говорят на нескольких языках, в том числе на Русском).

Чем этот детектор устройств лучше:

1. Определение устройств осуществляется без использования регулярных выражений. Как работает определение устройств.
2. Скорость определения устройств достигает 5000000 в секунду на средненьком железе используя Trie файл. Доказательство и метод тестирования.
3. Точность детекта выше 99%.
4. Уже используется в крупных компаниях по всему миру (Ebay, Hyundai, Dominos Pizza и т.д.).
5. Открытый исходный код. Внятная лицензия.
6. Регулярно обновляемая база устройств.

Плюшки:

Чтобы еще больше облегчить жизнь разработчикам в комплекте идет оптимизатор изображений, который может автоматически изменять размер изображений в зависимости от размеров экрана. Желаемый размер изображения так же можно указать вручную.

Спасибо за внимание и надеюсь этот инструмент станет полезным дополнением к Вашему набору инструментов веб-разработчика!

С уважением,
Михаил
 
 Top
esterio
Отправлено: 23 Июля, 2014 - 17:06:37
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)





глобальные переменные не есть гуд
плюс ко всему юзерагент подделать не составляет труда Ниндзя

(Отредактировано автором: 23 Июля, 2014 - 17:08:10)

 
 Top
DelphinPRO
Отправлено: 23 Июля, 2014 - 17:12:02
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




esterio пишет:
плюс ко всему юзерагент подделать не составляет труда

Цель определения браузера обычно в том, чтобы подсунуть мобильную версию сайта. Если пользователь напортачил с юзер-агентом - это его проблемы.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
nerru86
Отправлено: 23 Июля, 2014 - 17:16:38
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Июль 2014  


Помог: 0 раз(а)




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

В любом случае, доступ к сайту не ограничивается даже с кривым юзер агентом. Да и подавляющее большинство в принципе никогда не станет пытаться менять ЮА. Смысл именно этого решения в том, что не нужно вручную править скрипты с выходом новых девайсов (а их иной раз выпускается до 300 в неделю), достаточно лишь обновить файл с базой раз в пару месяцев и не знать проблем.

(Отредактировано автором: 23 Июля, 2014 - 19:04:52)

 
 Top
esterio
Отправлено: 23 Июля, 2014 - 17:17:07
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




DelphinPRO
частично согласен, но я бы скорее такое действия доверил бы JS нежели PHP
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программное обеспечение »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB