О web-разработке
и даже немного больше...

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

mobile-phonepngПостановка задачи проста: необходимо определить тип устройства, с которого был сделан запрос скрипта. Код оформлен в виде функции, способной с неплохой вероятностью определить ваш вход с мобильного устройства либо с компьютера.
В качестве примера результат выводиться в виде строки. Однако вы можете модифицировать код под свои нужды. Частенько используется для подключения определенных шаблонов, элементов сайта, в зависимости от устройства, что весьма удобно.

<?php
function detect_mobile_device(){
    // check if the user agent value claims to be windows but not windows mobile
if(stristr(@$_SERVER['HTTP_USER_AGENT'],'windows')&&!stristr(@$_SERVER['HTTP_USER_AGENT'],'windows ce')) return false;

    // check if the user agent gives away any tell tale signs it's a mobile browser
if(preg_match('/up.browser|up. link |windows ce|iemobile|mini|mmp|symbian|midp|wap|phone|pocket|mobile|pda|psp/i',
    @$_SERVER['HTTP_USER_AGENT'])) return true;

    // check the http accept header to see if wap.wml or wap.xhtml support is claimed
if(isset($_SERVER['HTTP_ACCEPT'])&&(stristr($_SERVER['HTTP_ACCEPT'],'text/vnd.wap.wml')||
    stristr($_SERVER['HTTP_ACCEPT'],'application/vnd.wap.xhtml xml'))) return true;

    // check if there are any tell tales signs it's a mobile device from the server headers
if(isset($_SERVER['HTTP_X_WAP_PROFILE'])||isset($_SERVER['HTTP_PROFILE'])||
    isset($_SERVER['X-OperaMini-Features'])||isset($_SERVER['UA-pixels'])) return true;

    // build an array with the first four characters from the most common mobile user agents
$a = array ('acs-','alav','alca','amoi','audi','aste','avan','benq','bird','blac',
    'bla z','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno',
    'ipaq','java', 'jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-',
    'maui','maxo','midp','mi ts','mmef','mobi','mot-','moto','mwbp','nec-',
    'newt','noki','opwv','palm','pana' ,'pant','pdxg','phil','play','pluc',
    'port','prox','qtek','qwap','sage','sams','s any','sch-','sec-','send',
    'seri','sgh-','shar','sie-','siem','smal','smar','sony ','sph-','symb',
    't-mo','teli','tim-','tosh','tsm-','upg1','upsi','vk-v','voda',' w3c ',
    'wap-','wapa','wapi','wapp','wapr','webc','winw','winw','xda','xda-');
    // check if the first four characters of the current user agent are set as a key in the array
if(isset($a[ substr (@$_SERVER['HTTP_USER_AGENT'],0,4)])) return true;
}

if (detect_mobile_device())echo "<h4>Вы зашли с мобильного телефона!</h4>";
else echo "<div class='res'><h4>Вы зашли с обычного компьютера.</h4></div>";
?>

UPD: Есть и другой способ определения мобильных устройств пользователей, это использование сторонней библиотеки Mobile Detect, в нем есть методы для более тонкой проверки устройств. Кроме того, класс Mobile Detect дорабатывается разработчиками, что является большим плюсом.

Опубликован: 03.02.2013 г.

См. также:

Редакторы кода для PHP
Как просмотреть время загрузки страницы в PHP?
Генерация QR-кода в PHP
Загрузка файлов на сервер посредством Ajax
Импорт записей из Excel в WordPress
Парсинг XML в PHP
Установка IonCube на XAMPP
Создание PDF файлов в PHP

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

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

Комментарии
  • Загрузка...
Друзья сайта