|
|
|
Всем привет!
Сейчас возился с задачей определять для вывода разной верстки компьютеры, планшеты и телефоны, выкладываю готовое решение, может кому-то пригодится.
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)
|
|
|
|
|
|
|
а зачем это все? есть html5, респонсив и готовый бутстрап от твиттера к примеру? |
|
|
|
|
|
Taburetkin, я в новых технологиях не очень, поэтому по-старинке |
|
|
|
|
|
|
|