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

 

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

 

This post was last modified on 08/08/2024 11:07

Последние посты

Робин Шарма

Действуй так, словно неудача просто невозможна, а успех обеспечен Робин Шарма  

13/09/2024

Уроки SQL — как найти повторяющиеся записи (дубли) в базе данных

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

08/09/2024

Ремонт или покупка новой шины? Варианты ремонта резины

Заплатка на шине, как правило, - это простой и дешевый вариант по сравнению с покупкой…

03/09/2024

Гигиена кота: основные правила и рекомендации ветеринаров

Коты относятся к чистоплотным животным — приблизительно половину своей жизни они тратят на «гигиенические процедуры».…

27/08/2024

Брюс Ли

Дисциплина — это не ограничение свободы. Это отсечение всего лишнего Брюс Ли  

25/08/2024

Сборные быстровозводимые дома – основное, что нужно знать

Что-то готовое к употреблению, как пицца или лапша, уже давно заняло почетное место в нашей…

23/08/2024