Очень часто при изготовлении сайта встаёт необходимость в создании облегченной версии (PDA) для телефонов, планшетов и смартфонов.

Чтобы определить, какую версию сайта показывать пользователю для его устройства и реализовать загрузку той версии мобильного приложения, которая больше всего подходит советую использовать API Яндекс.Детектор.

API Яндекс.Детектор предоставляет возможность определения модели и характеристик мобильного устройства пользователя сайта по заголовкам HTTP-запросов, передаваемых браузером его устройства.

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

<?php
function mobileDetect() {
    $headers = '';

    foreach ($_SERVER as $key => $value) {
        if (strpos($key, 'HTTP_') === 0 && $key != 'HTTP_HOST' && $key != 'HTTP_CONNECTION') {
            $key = strtolower(strtr(substr($key, 5), '_', '-'));
            $headers .= $key . ': ' . $value . "\r\n";
        }
    }

    $opts = array(
        'http' => array(
            'method' => "GET",
            'header' => $headers,
            'timeout' => 6
        )
    );

    $response = file_get_contents('http://phd.yandex.net/detect', false, stream_context_create($opts));

    if (preg_match('|<yandex-mobile-info-error>|si', $response)) {
        return false;
    }

    return true;
}
?>

Теперь создаём поддомен на вашем основном домене. Например, если у меня был домен www.peacekeeper.ru, то я создал поддомен pda.peacekeeper.ru (можно и m.peacekeeper.ru).

Использовать нашу функцию будем примерно так: если человек зашел на сайт с мобильного телефона - редиректим его на ту же самую страницу, которую он запросил, только на поддомене pda.peacekeeper.ru.

<?php
// Редирект на PDA-версию
if (mobileDetect()) {
    header('Location: http://pda.'.trim($_SERVER['SERVER_NAME'], 'www.').$_SERVER['REQUEST_URI']);
}
?>

Пример можно посмотреть здесь (заходить, естественно, через мобилку). Продолжение следует ヅ

Ссылки

Похожие публикации:

  1. Установка standalone версии Akismet для сайта
    Akismet — веб-сервис от создателей WordPress, анализирующий качество содержимого, отправляемого на веб-сайты. Сюда включаются: комментарии, сообщения, отправляемые через контакт-формы, блоги,...
  2. Создание счетчика «онлайн на сайте»
    Для реализации счетчика, который бы показывал, сколько человек в данный момент на сайте, можно использовать любой из бесплатных сервисов статистики....
  3. Зависимость дизайна сайта от времени года
    Чтобы ваш сайт не смотрелся скучным, можно постоянно менять ему дизаин. Если этот процесс автоматизировать, чем мы сейчас и займёмся,...
  4. Валидный тег NOINDEX для Яндекс
    Тег noindex — не входит в официальную спецификацию языка гипертекстовой разметки веб-страниц HTML. Он предназначенного для включения в него частей...
  5. FireBug для вашего сайта
    Firebug — расширение для браузера Firefox, являющееся консолью, отладчиком, и DOM-инспектором JavaScript, DHTML, CSS, XMLHttpRequest. Firebug показывает в консоли вызвавшую...

Теги: ,

Комментариев - 2

  1. Это тупо, потому что каждый рахз при загрузке страницы происходит отправка запроса ещё и на сервер яндекса. Надо покапаться в $headers, которые создаёт эта функция, в них кроется ответ.

  2. Что вы имели ввиду под словом «покопаться», ведь эту функцию вы сами пишите :) И заголовки сами создаете.

Оставить комментарий

При написании кода в комментариях вы можете использовать Zen Coding для быстрого ввода HTML.