Уроки 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) {
  // если ошибка
}

 

Вот и все на сегодняшний день по данной теме. Спасибо за внимание!

 

Recent Posts

Как выбрать мастера для перетяжки мебели?

Выбор мастера для ремонта и перетяжки мебели — задача, которая требует вдумчивого подхода. Ведь от…

2 дня ago

Что лучше выбрать для хостинга: сервер VPS Windows или VPS Linux?

Выбор идеального хостинга под свой сайт может быть довольно запутанным делом, особенно когда существует так…

1 неделя ago

Лоуренс Питер

Чтобы избегать ошибок, нужно набираться опыта; чтобы набираться опыта, надо делать ошибки Лоуренс Питер  

2 недели ago

Что такое Черное СЕО (Black Hat SEO) — вся нужная информация

Краткое определение Черного SEO Черное СЕО (или Черная оптимизация) — это любая практика, целью которой…

2 недели ago

Права категории C: кому они нужны и как их получить?

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

3 недели ago

Уилл Смит

Хорошие люди принесут вам счастье, плохие люди наградят вас опытом, худшие — дадут вам урок,…

3 недели ago