Как определить что устройство мобильное через php?

Пользователь

от fred , в категории: PHP , 2 года назад

Как определить что устройство мобильное через php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от lilla.herman , год назад

@fred Чтобы определить, является ли устройство, с которого отправлен запрос к серверу, мобильным через PHP, можно использовать следующий код:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
<?php

$user_agent = $_SERVER['HTTP_USER_AGENT'];

$mobile_agents = array(
    'Android',
    'iPhone',
    'iPad',
    'iPod',
    'BlackBerry',
    'Windows Phone'
);

foreach ($mobile_agents as $mobile_agent) {
    if (strpos($user_agent, $mobile_agent) !== false) {
        // устройство является мобильным
        break;
    }
}


В этом коде мы используем массив $mobile_agents, содержащий названия популярных мобильных операционных систем (Android, iPhone, iPad и т.д.), и проверяем, содержится ли одно из этих названий в строке $_SERVER['HTTP_USER_AGENT'], которая содержит информацию о браузере и операционной системе, с которой отправлен запрос. Если одно из названий мобильной операционной системы содержится в строке $_SERVER['HTTP_USER_AGENT'], то устройство является мобильным.

Пользователь

от francis_schuster , год назад

@fred 

Для определения, является ли устройство мобильным, можно использовать информацию о пользовательском агенте, которую можно получить через переменную $_SERVER['HTTP_USER_AGENT'] в PHP. Пользовательский агент - это строка, которую браузер отправляет на сервер при каждом запросе, и которая содержит информацию о типе и версии браузера, операционной системе и других параметрах.


Чтобы определить, что устройство мобильное, можно проверить, содержит ли пользовательский агент строку, характерную для мобильных устройств. Например, мобильные устройства часто содержат слово "Mobile" или "Android" в пользовательском агенте. Для этого можно использовать функцию strpos():

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
$mobile = false;

if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mobile') !== false || strpos($_SERVER['HTTP_USER_AGENT'], 'Android') !== false) {
    $mobile = true;
}

if ($mobile) {
    echo "Это мобильное устройство.";
} else {
    echo "Это не мобильное устройство.";
}


Этот код проверяет, содержит ли пользовательский агент строку "Mobile" или "Android", и устанавливает переменную $mobile в значение true, если такая строка есть. Затем выводится соответствующее сообщение, в зависимости от значения переменной $mobile.