Досить часто при програмуванні своїх веб-додатків доводиться визначати пристрій, з якого користувач відвідує сторінку: з настільного комп’ютера, з мобільного телефону, планшету, чи іншого пристрою. Як це можна зробити з допомогою 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) { // якщо помилка }
Ось і все на сьогодні по даній темі. Дякую за увагу!
Коли ви ставите перед собою цілі, дуже важливо бути максимально конкретним. Тут не допоможе проста…
Сучасна людина думає, що втрачає час, коли не діє швидко, однак не знає, що робити…
Унікальна елегантність і довговічність: чому варто купити травертин або граніт Натуральний камінь це більше, ніж…
У сучасному світі, де щодня від нас вимагають бути в ресурсі, відповідати зовнішнім очікуванням та…
Існує багато способів захистити свої дані в Інтернеті. Одним з найкращих рішень можна назвати віртуальну…
Реалії сьогодення такі, що все важче стає залишатися приватним при перегляді веб-сторінок, і це ще…