Уроки PHP — Как определить в своем скрипте, не мобильное ли это устройство
Часто при программировании своих веб-приложений приходится определять устройство, с которого пользователь посещает страницу: с персонального компьютера, с мобильного телефона, планшета или другого устройства. Как это можно сделать с помощью 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).
Как использовать скрипт Mobile_Detect в PHP для обнаружения мобильных устройств?
Шаг 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();
Пример использования библиотеки Mobile Detect в своем проекте PHP.
В следующем простом примере с помощью библиотеки 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) { // если ошибка }
Вот и все на сегодняшний день по данной теме. Спасибо за внимание!