Как определить устройство пользователя php

Определяем устройство с помощью 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 и множество других фреймворков и языков и платформ.

Библиотека очень полезная и весьма доставляющая.

Источник

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

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

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

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

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

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

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

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

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

Примеры

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

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

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

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

Как определить устройство пользователя php. Смотреть фото Как определить устройство пользователя php. Смотреть картинку Как определить устройство пользователя php. Картинка про Как определить устройство пользователя php. Фото Как определить устройство пользователя php

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

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

Как определить устройство пользователя php. Смотреть фото Как определить устройство пользователя php. Смотреть картинку Как определить устройство пользователя php. Картинка про Как определить устройство пользователя php. Фото Как определить устройство пользователя php

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

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

Как определить устройство пользователя php. Смотреть фото Как определить устройство пользователя php. Смотреть картинку Как определить устройство пользователя php. Картинка про Как определить устройство пользователя php. Фото Как определить устройство пользователя php

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

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

Как определить устройство пользователя php. Смотреть фото Как определить устройство пользователя php. Смотреть картинку Как определить устройство пользователя php. Картинка про Как определить устройство пользователя php. Фото Как определить устройство пользователя php

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

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

Источник

Определение мобильного устройства в php

Определение мобильного устройства. Введение

Как определить устройство пользователя php. Смотреть фото Как определить устройство пользователя php. Смотреть картинку Как определить устройство пользователя php. Картинка про Как определить устройство пользователя php. Фото Как определить устройство пользователя phpСегодня перебирал свои старые исходники и нашел одну замечательную функцию, которая определяет с компьютера зашел пользователь или с мобильного устройства. Я уже не помню, сам ее писал или нашел где-то в интернете, а может нашел кусок и отредактировал. Не важно откуда она взялась, главное. что функция работает. Определение устройство, с которого просматривается сайт, реализовано очень просто: получаем информацию о HTTP_USER_AGENT и сравниваем со всеми известными на данный момент агентами, используемыми мобильными устройствами.

Определение мобильного устройства. Код

И пример использования:

На этом все. Если у кого-то эта функция не будет срабатывать — присылайте в комментарии название устройства, а лучше, используемый им, юзер агент. Тогда функция будет дополняться, и вместе мы ее сделаем более универсальной.

Определение мобильного устройства в php: 7 комментариев

Здравствуйте!
Планшеты windows 10 как-то можно определить?
Спасибо!

А зачем? Ведь на планшетах под управлением Windows 10, стоит десктопная версия!

Здравствуйте. Есть не большой текст.
Можно ли сделать, чтоб этот текст был в спойлере или его вообще не было, если человек зашёл с мобильного устройства, а если с компа, то как обычно. (Планшеты не читывать, то есть планшет = комп)
Заранее благодарю.

Доброго времени,
Можно добавить условие при выводе страницы — если устройство мобильное, то выводить один кусок верстки, а если десктоп — показывать совсем другое

Спасибо Вам огромное!
Всё просто и работает!

Источник

Как определить с мобильного устройства или с PC зашел человек на сайт при помощи PHP?

Как определить устройство пользователя php. Смотреть фото Как определить устройство пользователя php. Смотреть картинку Как определить устройство пользователя php. Картинка про Как определить устройство пользователя php. Фото Как определить устройство пользователя php

Это бессмысленно.
Потому что сейчас многие устройства на мобильных ОС имеют больший экран и мощнее.
Проверять надо возможности, и только на JS.

Даже из jQuery выпилили такой функционал.

Как определить устройство пользователя php. Смотреть фото Как определить устройство пользователя php. Смотреть картинку Как определить устройство пользователя php. Картинка про Как определить устройство пользователя php. Фото Как определить устройство пользователя php

Владислав: не нужно, это очень распространенная и серьезная ошибка.
Приведу пример: есть нетбук с экраном 10″ 1366*768 и планшет с FullHD и экраном 12″. Какому из этих устройств нужно отдавать мобильную версию?

Как определить устройство пользователя php. Смотреть фото Как определить устройство пользователя php. Смотреть картинку Как определить устройство пользователя php. Картинка про Как определить устройство пользователя php. Фото Как определить устройство пользователя php

Как определить устройство пользователя php. Смотреть фото Как определить устройство пользователя php. Смотреть картинку Как определить устройство пользователя php. Картинка про Как определить устройство пользователя php. Фото Как определить устройство пользователя php

Владислав:
> Потому что шаблон планшета будет содержать элементы интерфейса специфичные для touch экранов, тогда получится хороший user experience.
Для этого не нужно создавать отдельный шаблон.

> К тому же у мобильной или планшетной версии может быть урезанный функционал, соответственно снижается нагрузка на backend.
Мне кажется, проще сайт удалить, тогда нагрузка еще меньше будет.

Как определить устройство пользователя php. Смотреть фото Как определить устройство пользователя php. Смотреть картинку Как определить устройство пользователя php. Картинка про Как определить устройство пользователя php. Фото Как определить устройство пользователя php

Владислав: с чего вы взяли, что что-то нужно скрывать?
Сейчас экраны мобильных устройств больше по пикселям, а иногда и по физическим размерам. Зачем отдавать им урезанную версию?
Меня на моем большом планшете такая самодеятельность всегда бесила и постоянно выбирал в меню хрома, чтобы он выдавал себя за десктопный браузер.

Источник

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

Как определить устройство пользователя php. Смотреть фото Как определить устройство пользователя php. Смотреть картинку Как определить устройство пользователя php. Картинка про Как определить устройство пользователя php. Фото Как определить устройство пользователя phpВпервые в своей практике, делал мобильную версию сайта. Должен скачать, что сделать сайт, который одинаково работал бы на огромном зоопарке мобильных браузеров, задача не из легких. Однако, в этой статье речь пойдет не об этом.

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

Самый верный вариант: проверять возможности браузера при помощи 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

А на сервере просто ставим куку, чтобы в дальнейшем не перенаправлять этого пользователя. Примерно так:

и наш скрипт автоматического перенаправления будет выглядеть так:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *