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

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

Сайт проекта mobiledetect.net, GitHub.

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()) {
	...
}
PHP

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

require_once '/Mobile_Detect.php';
$detect = new Mobile_Detect;	
$is_mobile = ($detect->isMobile() && !$detect->isTablet());
PHP
<?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; ?>
HTML

Если проект написан на ООП, для передачи значения переменной $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')) {
	...
}
PHP

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

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

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

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;
}
PHP
27.09.2018, обновлено 17.01.2020
13222

Комментарии

, чтобы добавить комментарий.

Другие публикации

Примеры отправки AJAX JQuery
AJAX позволяет отправить и получить данные без перезагрузки страницы. Например, делать проверку форм, подгружать контент и т.д. А функции JQuery значительно упрощают работу.
141594
+22
Шаблонизатор Smarty
Smarty это компилирующий обработчик шаблонов для PHP позволяющий отделить логику и HTML-верстку веб-приложения.
15465
+5
HTTP коды
Список основных кодов состояния HTTP, без WebDAV.
6641
+1
Мануал по созданию и форматированию excel файлов в PHPExcel
К сожалению разработчики прекратили поддержку и разработку проекта, но PHPExcel все равно остается популярной...
72235
+23
Использование API Яндекс Диска на PHP
Можно найти множество применений Яндекс Диска на своем сайте, например, хранение бекапов и отчетов, обновление прайсов,...
38761
+13
Примеры использования cURL в PHP
cURL PHP – это библиотека предназначенная для получения и передачи данных через такие протоколы, как HTTP, FTP, HTTPS....
120895
+18