PHP

Определение мобильного устройства

Определить телефон или планшет можно с помощью библиотеки PHP Mobile Detect. Это легкий класс использующий строку User-Agent в сочетании с HTTP заголовками.

Сайт проекта mobiledetect.net, GitHub, Mobile-Detect.zip (2.8.33)

1

Методы класса

require_once '/Mobile_Detect.php';
$detect = new Mobile_Detect;
 
// Мобильные и планшеты
if ($detect->isMobile()) {
    ...
}
 
// Планшеты
if ($detect->isTablet()) {
    ...
}
 
// Только мобильные
if ($detect->isMobile() && !$detect->isTablet()) {
    ...
}
 
// iOS устройства
if ($detect->isiOS()) {
    ...
}

// Android устройства
if ($detect->isAndroidOS()) {
    ...
}
2

Использование

Результат работы класса можно передать в переменную, константу и т. д. и далее использовать для вывода шаблонов или отдельных блоков на сайте. Например телефоны ссылками:

require_once '/Mobile_Detect.php';
$detect = new Mobile_Detect;    
$is_mobile = ($detect->isMobile() && !$detect->isTablet());
<?php if ($is_mobile): ?>
<a href="tel:+7 (123) 456-78-90">+7 (123) 456-78-90</a>
<?php else: ?>
+7 (123) 456-78-90
<?php endif; ?>

Если проект написан на ООП, для передачи значения переменной $is_mobile между объектами будет полезным класс Registry.

require_once '/Mobile_Detect.php';
require_once '/Registry.php';

$detect = new Mobile_Detect;
Registry::set('is_mobile', ($detect->isMobile() && !$detect->isTablet()));        

...

if (Registry::get('is_mobile')) {
    ...
}
3

Переключение между версиями

Когда активна мобильная версия сайта, пользователю нужна возможность переключится на десктопную. В подвале мобильной версии выводится ссылка «полная версия» с GET параметром:

<footer>
    <a href="?full">Перейти на полную версию сайта</a>
<footer>

После перехода значение попадает в сессию и мобильная версия больше не показывается.

require_once '/Mobile_Detect.php';
$detect = new Mobile_Detect;    

if (isset($_GET['full'])) {
    $_SESSION['full'] = true;
}

if (empty($_SESSION['full'])) {
    $is_mobile = ($detect->isMobile() && !$detect->isTablet());
} else {
    $is_mobile = false;
}
27 сентября 2018
В последнее время письма отправляемые с хостингов через функции mail() и mb_send_mail() часто попадают или совсем не...
cURL PHP – это библиотека предназначенная для получения и передачи данных через такие протоколы, как HTTP, FTP, HTTPS....
В статье приведены основные примеры работы с расширением PHP PDO. Такие как подключение к БД, получение, изменение и...
Библиотека GD дает возможность работать с изображениями в PHP. Далее представлены примеры как изменить размер, вырезать...