Как определить, является ли устройство мобильным или настольным?

Я прочитал много статей и искал решения для обнаружения мобильных устройств. Фактически, натолкнулся на https://github.com/serbanghita/mobile-detect, но это довольно массивный класс php.

Я действительно хочу очень простое решение. Я хочу определить, является ли браузер пользователя Mobile / iPad / etc или Desktop. Поэтому я хочу что-то вроде этого:

<?php

require('detector.php');

if(isMobile() === true)
{
   header('mobile.php');
   exit();
}
else
{
   header('desktop.php');
   exit();
}

?>

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

Как это возможно?

php,mobile,desktop,

2

Ответов: 4


4 принят

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

И использование этого класса совершенно просто. В каталоге примеров:

require_once '../Mobile_Detect.php';
$detect = new Mobile_Detect;
$deviceType = ($detect->isMobile() ? ($detect->isTablet() ? 'tablet' : 'phone') : 'computer');

Теперь у вас есть переменная с одним из трех значений: «планшет», «телефон» или «компьютер», и вы можете реагировать на это.

Обратите внимание, что даже если вы можете использовать эту библиотеку без Composer, она будет регулярно обновляться (как в «один раз в месяц»), потому что новые устройства выходят на рынок и должны быть обнаружены. Вам нужно будет обновить эту библиотеку в какой-то момент. Использование Composer делает это очень просто.


2

Если вы действительно не хотите включать этот класс в свой код, Mozilla указывает, что он «достаточно хорош» для поиска строки «mobi» в пользовательском агенте .

<?php
if (stristr($_SERVER['HTTP_USER_AGENT'],'mobi')!==FALSE) {
    echo 'mobile device detected';
}
?>

1

Вы можете перенаправить ссылку
и с помощью контроллера, с которым вы можете проверить

$keybord = app::get('keyboard')
if($keyboard == mobile ){
    redirect ('mobile');
}else{
   redirect ('desktop');
}   

0

Я нашел эту простую строку очень надёжной и простой в использовании. Без необходимости добавлять один дополнительный класс.

if(strstr(strtolower($_SERVER['HTTP_USER_AGENT']), 'mobile') || strstr(strtolower($_SERVER['HTTP_USER_AGENT']), 'android')) {
   echo "running on mobile";
}
PHP, мобильный, рабочий стол,
Похожие вопросы