Часто при программировании своих веб-приложений приходится определять устройство, с которого пользователь посещает страницу: с персонального компьютера, с мобильного телефона, планшета или другого устройства. Как это можно сделать с помощью PHP?
Самый простой способ — использовать переменную $_SERVER
в PHP:
var_dump($_SERVER["HTTP_USER_AGENT"]);
Как можно использовать переменную $_SERVER
в своей функции? Ниже представлен пример простого PHP-кода, с помощью которого можно обнаружить мобильный девайс:
// объявляем функцию function isMobile() { return preg_match("/(android|webos|avantgo|iphone|ipad|ipod|blackberry|iemobile|bolt|boost|cricket|docomo|fone|hiptop|mini|opera mini|kitkat|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]); } // используем функцию if(isMobile()) { // код для мобильных устройств echo "Это мобилка"; } else { // код, для всех других устройств echo "Это НЕ мобилка"; };
В этом примере функция isMobile
использует функцию preg_match
, которая с помощью регулярного выражения ищет совпадение значения браузера пользователя (User Agent) в значении переменной $_SERVER["HTTP_USER_AGENT"]
. Следует отметить, что перечень значений пользовательских браузеров в приведенной выше функции далеко не полон.
Есть ли еще какой-нибудь вариант?
Так, по схожей логике, которую мы рассмотрели выше, работает готовая библиотека PHP Mobile_Detect — небольшой класс PHP для обнаружения мобильных устройств (включая планшеты). В этой библиотеке также используется значение User-Agent в сочетании со специальными заголовками HTTP для обнаружения мобильного устройства. Автор библиотеки: Şerban Ghiţă (serbanghita).
Шаг 1. Сначала нужно подключить автозагрузчик композера (composer’s autoloader):
require __DIR__ . '/vendor/autoload.php';
Шаг 2. Подключаем и создаем экземпляр класса библиотеки Mobile Detect:
use Detection\MobileDetect; $detect = new MobileDetect();
Шаг 3. Проверяем на «мобильность»:
$isMobile = $detect->isMobile(); $isTablet = $detect->isTablet();
В следующем простом примере с помощью библиотеки MobileDetect мы создаем экземпляр класса, который по умолчанию получает строку User-Agent из переменной $_SERVER
. Затем в блоке try/catch
вызываем метод $detect->isMobile()
:
$detect = new MobileDetect(); var_dump($detect->getUserAgent()); // "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ..." try { $isMobile = $detect->isMobile(); // bool var_dump($isMobile); } catch (\Detection\Exception\MobileDetectException $e) { // если ошибка }
Вот и все на сегодняшний день по данной теме. Спасибо за внимание!
Содержание статьи Введение: почему цены решают все Что значит сравнение цен с конкурентами 5 причин,…
В последние годы интерес к саунам в Киеве заметно вырос. Это связано не только с…
В современном ритме мегаполиса отдых стал неотъемлемой частью заботы о здоровье и эмоциональном состоянии. Особенно…
В современном мире цифрового маркетинга Facebook (Meta) остается одной из самых мощных платформ для продвижения…
Этот прибор стал незаменимым элементом арсенала представителей множества профессий, но особенно актуален среди военных. Тепловизор…
Постоянный поток новостей, рабочих задач и личных забот часто приводит к тому, что в голове…