Досить часто при програмуванні своїх веб-додатків доводиться визначати пристрій, з якого користувач відвідує сторінку: з настільного комп’ютера, з мобільного телефону, планшету, чи іншого пристрою. Як це можна зробити з допомогою 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) { // якщо помилка }
Ось і все на сьогодні по даній темі. Дякую за увагу!
Навчання за кордоном вже давно асоціюється з якісною освітою, новими можливостями та безліччю перспектив. Але…
Вибір майстра для ремонту та перетяжки меблів – завдання, яке потребує вдумливого підходу. Адже від…
Вибір ідеального хостингу під свій сайт може бути досить заплутаною справою, особливо коли існує багато…
Щоб уникати помилок, потрібно набиратися досвіду; щоб набиратися досвіду, потрібно робити помилки Лоуренс Пітер
Коротке визначення Чорного SEO Чорне СЕО (або Чорна оптимізація) — це будь-яка практика, метою якої…
Отримання прав водія категорії C відкриває двері до професійної діяльності, пов'язаної з керуванням вантажними автомобілями.…