Определение ОС посетителя в PHP

Я пытаюсь получить ОС посетителя на PHP(Codeingiter). Я попробовал https://github.com/serbanghita/Mobile-Detect. Это работало для меня 70% времени. Но все же это не обнаруживает точно. Хороший объем трафика Android не определяется как мобильный или планшетный.

3 ответа

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

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

Вы должны добавить проверки для других устройств, таких как iPad и другие, которые я пропустил...

$hua = filter_input(INPUT_SERVER, 'HTTP_USER_AGENT');
$os = 'I have no idea...';

if(preg_match('/android/i', $hua)) {
    $os = 'Android';
} elseif (preg_match('/linux/i', $hua)) {
    $os = 'Linux';
} elseif (preg_match('/iphone/i', $hua)) {
    $os = 'iPhone';
} elseif (preg_match('/macintosh|mac os x/i', $hua)) {
    $os = 'Mac';
} elseif (preg_match('/windows|win32/i', $hua)) {
    $os = 'Windows';
}
echo $os;

Библиотека классов User Agent в CodeIgniter Предоставляет функции для выполнения вашей задачи. Вы можете найти более подробную информацию о них здесь: User Agent Class Library

Специально ищите функцию platform() для определения ОС посетителя.

Другие вопросы по тегам