PHP Определение мобильных устройст

Мобильные устройство развиваются с огромной скоростью и рано или поздно вам придется задумать о мобильной версии сайта. Для того, что бы определить мобильные устройства, которые используют пользователи при просмотре вашего сайта можно задействовать функцию приведенную ниже.

function mobile_detect()
{
    $user_agent = $_SERVER['HTTP_USER_AGENT'];

    $ipod = strpos($user_agent,"iPod");
    $iphone = strpos($user_agent,"iPhone");
    $android = strpos($user_agent,"Android");
    $symb = strpos($user_agent,"Symbian");
    $winphone = strpos($user_agent,"WindowsPhone");
    $wp7 = strpos($user_agent,"WP7");
    $wp8 = strpos($user_agent,"WP8");
    $operam = strpos($user_agent,"Opera M");
    $palm = strpos($user_agent,"webOS");
    $berry = strpos($user_agent,"BlackBerry");
    $mobile = strpos($user_agent,"Mobile");
    $htc = strpos($user_agent,"HTC_");
    $fennec = strpos($user_agent,"Fennec/");

    if ($ipod || $iphone || $android || $symb || $winphone || $wp7 || $wp8 || $operam || $palm || $berry || $mobile || $htc || $fennec) 
    {
        return true; 
    } 
    else
    {
        return false; 
    }
}

Функция возвращает true или false. Для мобильной версии можно сделать либо редирект (на случай задействования субдомена) либо использовать допиливание шаблона.

Для того, что бы запоминать какой версией пользуется пользователь и отдавать корректный контент, можно воспользоваться куками. Получится похожее на следующее:

if (empty($_COOKIE['mobile']) || $_COOKIE['mobile'] == false) {
    if (!mobile_detect()) {
        setcookie('mobile', false, time()+9999999);
        header('Location: http://m.domain.com');
    } else {
        setcookie('mobile', true, time()+9999999);
        header('Location: http://www.domain.com');
    }
}

Опубликовано
В рубрике PHP Отмечено

2 комментария

  1. Hi. You can use regexpr for this task.
    (iPod|iPhone|Android|Symbian|WindowsPhone|WP7|WP8|Opera M|webOS|BlackBerry|Mobile|HTC_|Fennec)

  2. Duty FREE, первоначально планировалось определять конкретные устройства и отдавать немного разный контент. Например, для андроида показывать ссылки на приложения и игры в Google Play.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *