АРМАДА
Как определить компьютеры, планшеты и телефоны
Новая тема Написать ответ Advanced Hosters - профессиональный хостинг

Yabuti
V.I.P.
Зарегистрирован: 28.11.2008
Сообщений: 16263
Contest (Сумма: 2)
Обратиться по нику
# Добавлено:Сб Янв 25, 2014 2:07 pmДобавить в избранноеОтветить с цитатой
Всем привет!
Сейчас возился с задачей определять для вывода разной верстки компьютеры, планшеты и телефоны, выкладываю готовое решение, может кому-то пригодится.

PHP-скрипт определения платформы по User-Agent, автор Serban Ghita, оф.сайт: http://pastebin.com/EH3zLBJ9
Сохраняем в файл is_mobile.php или любое другое имя.

Применение:

Код:
<?php
// Инклюдим определитель мобильных и планшетов
require_once "if_mobile.php";

// Определяем мобильные и планшеты
// Создаем новый экземпляр класса
$detect = new Mobile_Detect;
 
// Определяем мобильные
if ( $detect->isMobile()  && !$detect->isTablet() ) {
   $if_mobile = "_mobile";
}

// Определяем планшеты
if ( $detect->isTablet() ) {
   $if_mobile = "_tablet";
}

// Пример инклюда нужного php-файла
include "template".$if_mobile.".php";

?>


Как работает код выше:
1. Инклюдим код скрипта для определения мобильных и планшетов.
2. Создаем новый экземпляр класса.
3. Определяем мобильные телефоны.
4. Определяем планшеты.
Если это не планшет и не мобильный, то переменная $is_mobile будет пустой.

Файлы шаблонов:

template.php - верстка для компьютеров
template_mobile.php - верстка для мобильных телефонов и смартфонов
template_tablet.php - верстка для планшетов

Конечно, всего три варианта для целого списка разрешений компьютеров, телефонов и планшетов это не самый идеальный вариант.
К примеру, для ПК размер баннера будет 1024х768 пикселей, для планшетов 640х480 пикселей, а для мобильных телефонов и планшетов 240х180 пикселей.
Альтернатива - определять при помощи JS разрешение экрана, делать обычный GET\POST-запрос с перезагрузкой страницы или асинхронных AJAX-запрос, либо при помощи JS автоматически ресайзить изображения, кому что нравится.

Также можно определять другие параметры мобильных платформ:
Код:
// Определяем ОС
if( $detect->isiOS() ){
 
}

if( $detect->isAndroidOS() ){

}

// Другой вариант определения ОС (бета-версия)
$detect->is('Chrome')
$detect->is('iOS')
$detect->is('UC Browser')

// Получение версии ОС (бета-версия)
$detect->version('iPad'); // 4.3 (float)
$detect->version('iPhone') // 3.1 (float)
$detect->version('Android'); // 2.1 (float)
$detect->version('Opera Mini'); // 5.0 (float)



Drinks or Beer
Ксен ВПС и выделенные серверы от PQCService.net с бесплатным администрированием в 7 локациях, icq: 87244588
--

Taburetkin
Гуру
Зарегистрирован: 25.02.2007
Сообщений: 1426
Star (Сумма: 1)
Обратиться по нику
# Добавлено:Сб Янв 25, 2014 4:37 pmОтветить с цитатой
а зачем это все? есть html5, респонсив и готовый бутстрап от твиттера к примеру?

Yabuti
V.I.P.
Зарегистрирован: 28.11.2008
Сообщений: 16263
Contest (Сумма: 2)
Обратиться по нику
# Добавлено:Сб Янв 25, 2014 5:02 pmОтветить с цитатой
Taburetkin, я в новых технологиях не очень, поэтому по-старинке Smile
Ксен ВПС и выделенные серверы от PQCService.net с бесплатным администрированием в 7 локациях, icq: 87244588
--
Новая тема Написать ответ    ГЛАВНАЯ ~ ТЕХНИЧЕСКИЕ ВОПРОСЫ

Перейти:  





Генеральный спонсор



Партнеры