2017-02-03 13 views
0

Мне нужно иметь возможность указывать между IE 11 и Firefox в скрипте PHP. У меня есть следующая функция. Однако в IE он возвращает Mozilla. Есть ли другой способ приблизиться к этому, чтобы отличить Firefox от IE?HTTP_USER_AGENT в PHP говорит, что Mozilla для IE

function browser() { 
$ua = strtolower($_SERVER['HTTP_USER_AGENT']); 
// you can add different browsers with the same way .. 
if(preg_match('/(chromium)[ \/]([\w.]+)/', $ua)) 
     $browser = 'chromium'; 
elseif(preg_match('/(chrome)[ \/]([\w.]+)/', $ua)) 
     $browser = 'chrome'; 
elseif(preg_match('/(safari)[ \/]([\w.]+)/', $ua)) 
     $browser = 'safari'; 
elseif(preg_match('/(opera)[ \/]([\w.]+)/', $ua)) 
     $browser = 'opera'; 
elseif(preg_match('/(msie)[ \/]([\w.]+)/', $ua)) 
     $browser = 'msie'; 
elseif(preg_match('/(mozilla)[ \/]([\w.]+)/', $ua)) 
     $browser = 'mozilla'; 

preg_match('/('.$browser.')[ \/]([\w]+)/', $ua, $version); 
return array($browser,$version[2],'name'=>$browser,'version'=>$version[2]); 
} 

Спасибо!

+0

HTTP (она восходит к эпохе Netscape.): // stackoverflow.com/questions/18070154/get-operating-system-info-with-php/18070424#18070424 может помочь. –

+1

Также http://stackoverflow.com/questions/1114254/why-do-all-browsers-user-agents-start-with-mozilla – apokryfos

+0

Чтобы ответить на ваш вопрос. Чтобы обнаружить Firefox, найдите слово 'firefox' – apokryfos

ответ

0

В Internet Explorer 11 не указана строка «MSIE», поскольку они не хотели, чтобы люди предполагали, что у нее были те же проблемы, что и старые версии IE.

Вы можете добавить такие строки:

elseif(preg_match('/(trident)[ \/]([\w.]+)/', $ua)) 
    $browser = 'msie'; 
elseif(preg_match('/(firefox)[ \/]([\w.]+)/', $ua)) 
    $browser = 'firefox'; 

Каждый веб-браузер будет содержать слово «Mozilla» в строке агента пользователя

 Смежные вопросы

  • Нет связанных вопросов^_^