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

Для чего это может пригодиться:
1) для показа мобильной версии сайта
2) для определения дальнейшего перенаправления пользователя. Например, рекламируем какой-то продукт. Ссылка для рекламы одна (зашита в баннер). Но пользователей мака направляем на одну страницу, а остальных на другую (2 разных лендинга).

<?php
if  (stripos($_SERVER['HTTP_USER_AGENT'],'mac os')!==false ||
     stripos($_SERVER['HTTP_USER_AGENT'],'macintosh')!==false) {
	header('location: http://link_for_mac');
	exit();
}
else {
	header('location: http://link_for_not_mac');
	exit();
}
?>

Суть проблемы ясна:

  1. есть User-Agent, который браузер посылает автоматически
  2. на сервере его можно прочитать через $_SERVER['HTTP_USER_AGENT']
  3. т.к. это просто строка примерно 100 символов, то нужно с помощью регулярных выражений (или функций для работы со строками) определить устройство.


Есть удобный класс Mobile_Detect

<?php
// подключаем всего 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() ){

}
?>
Похожие темы:
#1

за такую штуку очень быстро получаешь фильтр

Andy, 15.02.2016 - 03:42
#2

2015 год? composer где ты?

mishanon, 16.07.2017 - 15:15
Оставить комментарий