Создание PDA-версии сайта: определение мобильных пользователей

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

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

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

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

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 . "rn";
        }
    }

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

    $response = file_get_contents('http://phd.yandex.net/detect', false, stream_context_create($opts));
    
    // Распаковать строку
    $response = gzdecode( $response );

    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.

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

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

Фото Ексей Пантелеев

Ссылки

Источник: https://www.kobzarev.com/programming/pda_version_mobile_detect/

Михаил Кобзарёв

Суровый русский тимлид. Жил в Магадане, в офисе московских веб студий и в Тульской деревне. Виртуозно знает WordPress, PHP, ООП, Vue.js и вот это вот все. Делает крутые высоконагруженные сайты, поэтому уже почти захватил весь рынок WordPress разработки в России. Не дает никому делать сайты без спроса. Ведет блог о разработке, дайджест в телеграмме и в ВК. Любит сиськи, баню и радиоэлектронику. 100% патриот (но это не точно). Тролль 542 уровня. Ездит в отпуск раз в 5 лет.

Добавить комментарий

%d такие блоггеры, как: