Как на php определить мобильное и его особенности
Определение мобильных устройств при помощи Mobile Detect php
Приветствую вас. Продолжаем исследовать возможности языка PHP и сейчас познакомимся с небольшой библиотекой, с помощью которой можно определять мобильные устройства пользователей на сайте. При чем определить можно даже марку телефона. Для чего это нужно? С большой уверенностью могу сказать, что подобные технологии используются в рекламных системах, в частности таргетированной рекламе. Это позволяет делать более персонализированные предложения. К примеру если вы продаете аксессуары для айфона, то имеет смысл показывать рекламу только тем, кто пользуется этими гаджетами, а для остальных скрыть или сделать переадресацию. Такой подход более профессиональный. На своем сайте вы тоже можете сделать нечто подобное. К примеру тем, кто заходит с мобильных — показать ссылку на телеграмм-канал, который будет запускаться автоматом (проверьте на моем), а тем, кто попал на сайт со стационарного компьютера — показать что-то другое. Не будем отрицать очевидные плюсы mobile detect library и перейдем к ее установке.
Установка PHP библиотеки Mobile Detect
Для подключения достаточно одного файла. Сделать это можно следующим образом.
Вот ссылка на реппозиторий гитхаба. Там есть описание по установке на различные CMS, в том числе и WordPress, а так же популярные фреймворки. А теперь самое время перейти к примерам использования.
$detect = new Mobile_Detect; if($detect->isAndroidOS())< echo "Андроид-устройство версии: ".$detect->version(‘Android’); > if($detect->isiOS())< echo "IOS-устройство версии: ".$detect->version(‘iOS’); > if ($detect->isMobile()) < echo '
Вы зашли с мобильного’; > if($detect->isTablet())< echo '
Вы зашли с планшета’; > if ($detect->isLG()) < echo '
Ваш смартфон LG’; > if ($detect->isSamsung()) < echo '
Ваш смартфон Samsung’; >
Кроме определения мобильных устройств в этой библиотеке предусмотрена возможность определять браузер и его версию. Правда пока в бета режиме. Но при тестировании все работает отлично.
if ($detect->is(‘Chrome’)) < echo "
Версия Chrome: «.$detect->version(‘Chrome’); > if ($detect->is(‘Opera’)) < echo "
Версия Opera: «.$detect->version(‘Opera’); >
Теперь вы знаете как определить мобильные телефоны и планшеты при помощи PHP. Поделитесь в комментариях если знаете еще подобные и более функциональные библиотеки.
Определение мобильного устройства в php
Определение мобильного устройства. Введение
Сегодня перебирал свои старые исходники и нашел одну замечательную функцию, которая определяет с компьютера зашел пользователь или с мобильного устройства. Я уже не помню, сам ее писал или нашел где-то в интернете, а может нашел кусок и отредактировал. Не важно откуда она взялась, главное. что функция работает. Определение устройство, с которого просматривается сайт, реализовано очень просто: получаем информацию о HTTP_USER_AGENT и сравниваем со всеми известными на данный момент агентами, используемыми мобильными устройствами.
Определение мобильного устройства. Код
И пример использования:
На этом все. Если у кого-то эта функция не будет срабатывать — присылайте в комментарии название устройства, а лучше, используемый им, юзер агент. Тогда функция будет дополняться, и вместе мы ее сделаем более универсальной.
Определение мобильного устройства в php: 7 комментариев
Здравствуйте!
Планшеты windows 10 как-то можно определить?
Спасибо!
А зачем? Ведь на планшетах под управлением Windows 10, стоит десктопная версия!
Здравствуйте. Есть не большой текст.
Можно ли сделать, чтоб этот текст был в спойлере или его вообще не было, если человек зашёл с мобильного устройства, а если с компа, то как обычно. (Планшеты не читывать, то есть планшет = комп)
Заранее благодарю.
Доброго времени,
Можно добавить условие при выводе страницы — если устройство мобильное, то выводить один кусок верстки, а если десктоп — показывать совсем другое
Спасибо Вам огромное!
Всё просто и работает!
Библиотека для определения типа и модели устройства на PHP
Mobile Detect это легковесный PHP класс для определения типа мобильного устройства, (включая и планшеты). Для определения устройства происходит анализ опции User-Agent и HTTP заголовков.
Общие возможности
Возможности библиотеки
Для проверки мы можем заюзать следующие методы:
Определение телефона
Определение планшета
Определение операционной системы
Определение мобильного браузера
Примеры
Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: http://mobiledetect.net/
Перевел: Станислав Протасевич
Урок создан: 15 Января 2014
Просмотров: 54570
Правила перепечатки
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 сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.
Определяем устройство с помощью PHP
Однажды этот прекрасный день пришёл. День, когда я физически осознал, что мне нужно определять, каким устройством пользуется посетитель сайта, чтобы соответственно отрисовывать для него страницу.
Прошлая методика с помощью медиазапросов по ширине экрана в моих глазах себя изжила — в таком случае на страницу всё равно загружается все элементы, только часть из скрывается или модернизируется. С одной стороны — это правильный и надёжный подход. С другой стороны, когда у нас присутствуют тяжёлые медиафайлы (например, видеофон) или немного другое расположение элементов, то будет намного проще и лучше грузить только нужные элементы в зависимости от того, каким устройством пользуется посетитель сайта.
Итак, я пошёл в интернет за готовым ответом, поскольку издавна исповедую практику «Сначала попробовать чужие костыли готовые решения, а если не нашёл — писать самостоятельно». Собственно, что я нашёл в интернете — это использовать $_SERVER[«HTTP_USER_AGENT»] или вообще пользоваться JavaScript’ом.
Затем, на одном форуме нашёл таки описание интересного и простого php-скрипта, которым уже достаточно давно пользуюсь и хочу поделиться с вами. Называется он Mobile-Detect (ссылка на GitHub). Это очень легковесное и удобное решение, которое использует ту самую строчку HTTP_USER_AGENT в комплекте с определёнными заголовками.
Проект постоянно поддерживается и обновляется, ибо весьма полезная вещь.
Подключается скрипт очень просто — с помощью requred_once мы указываем путь к файлу, а затем инициализируем объект:
Также существуют две переменные для определения операционной системы мобильного устройства:
Кроме того, скрипт может определять производителя устройства. Укажу всего несколько переменных для определения вендора устройства, которые нам доступны:
В реальности этих переменных намного больше — на демо-странице скрипта можно увидеть список поддерживаемых переменных.
Для тех, кто хочет убойной точности и избирательности, можно указывать нужные устройства через значения UserAgent, но по мне такая избирательность уж слишком чрезмерная (хотя бывает всякое).
Разработчики не перестают совершенствовать свой продукт и вполне вероятно, что скоро нам будет доступна возможность определения версий браузеров и устройств (в первую очередь для продукции Apple) — функции уже есть в последнем релизе, но пока они находятся на бета-тестировании.
Теперь давайте разберём на примере принцип работы скрипта. Допустим, мы должны выводить для посетителя сайта разные сообщения в зависимости от операционной системы его устройства. Это будет выглядеть так:
Этот пример немного бесполезный, но очень простой. Немного подумав, этот скрипт можно исползовать для более изящных решений, например, в зависимости от операционной системы подключать разные стили и изображения, чтобы дизайн сайта адаптировался под устройство. Либо, если на вашей странице есть реклама мобильного приложения, выводил предложения о переходе на AppStore или Google Play соответственно. Идей для применения может быть много.
Предлагаю вашему вниманию ещё один пример, который используется на моём сайте. Суть кода следующая — мы выводим разные варианты шапки сайта в зависимости от типа устройства. Код (с сокращениями) следующий:
И напоследок самое сладкое — эта библиотека была портирована на JavaScript, Varnish Cache и LUA.
На основе этого скрипта написаны плагины и модули для WordPress, Drupal, Joomla, Magento, PrestaShop (там он вообще поставляется в стандартном пакете с версии 1.5), Laravel, Yii Framework и множество других фреймворков и языков и платформ.
Библиотека очень полезная и весьма доставляющая.
Автоматическое определение мобильных браузеров
Впервые в своей практике, делал мобильную версию сайта. Должен скачать, что сделать сайт, который одинаково работал бы на огромном зоопарке мобильных браузеров, задача не из легких. Однако, в этой статье речь пойдет не об этом.
После того, как сайт был готов, возникла необходимость автоматически определять с какого типа устройств зашел пользователь, и отправлять его на соответствующую версию сайта.
Самый верный вариант: проверять возможности браузера при помощи js и затем перенаправлять. Но, это не подходит если мы не хотим чтобы пользователь грузил лишние килобайты, а автоматически был перенаправлен на нужную страничку. Поэтому требовалось серверное решение.
Когда-то, очень давно, я слышал про сервис Яндекс.Детектор. Его назначение просто и понятно: вы отправляете ему заголовки или user_agent, которые прислал Вам браузер, а сервис в ответе присылает технические характеристики устройства. То ли сервис чего-то напутал, то ли я чего-то не понял, но Яша упорно не мог определить ни десктопные браузеры, ни мобильные. Единственно верно он определил мобильный браузер моего Fly (на Андроие 2.3.5). Такой расклад меня мягко говоря не устроил, я решил поискать другие решения.
Такого сервиса я не нашел, но было найдено компромиссное решение: определение браузера по ключевым словам, но с использованием постоянно обновляющегося класса написанного на php. Раз в пол года, Вы обновляете скрипт, и получаете всегда актуальную проверку.
Представляю Вам легкий класс PHP для обнаружения мобильных устройств mobiledetect. Вот, что пишут его создатели про свой скрипт
Mobile_Detect это легкий класс PHP для обнаружения мобильных устройств. Он использует строку user агента в сочетании со специфическими заголовки HTTP для обнаружения мобильной среды.
Использовать достаточно просто
В наше время никого не удивишь 3-мя версиями сайта: основной(для десктопа), адаптированной(для планшетов), и мобильной.
Метод, который позволит определить, что пользователь зашел с мобильного устройства (смартфон, телефон и т.п.):
Я не делал отдельной адаптированной версии, поэтому меня устроил такой вариант:
Для моего проекта было актуально: показывать рекламу того приложения для устройства с которого зашел пользователь. Т.е. зашел он с Android, предлагаем ему скачать Android программу из Play Store, зашел с Iphone даем ссылку на AppStore. С данным классом определить операционную систему можно так:
Есть еще куча методов isIphone(), isIpad(), isBlackBerry(), isKindle(), isOpera() и т.д. полный список можно посмотреть запустив demo.php из скачанного архива, либо на demo странице официального сайта скрипта
Проект активно развивается, и используется уже в куче известных систем Drupal, WordPress и т.д.
В конце лишь напишу, что надо дать возможность пользователю решать, нужна ли ему мобильная версия. Я сделал так: в самом низу мобильной версии сайта, была ссылка на основной сайт, но с параметром http://sitename.ru/?nomobile
А на сервере просто ставим куку, чтобы в дальнейшем не перенаправлять этого пользователя. Примерно так:
и наш скрипт автоматического перенаправления будет выглядеть так: