Проверка с помощью JS
function checkIE()
{
var ieVr = -1;
if (navigator.appName == 'Microsoft Internet Explorer')
{
var agent = navigator.userAgent;
var exp = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
if (exp.exec(agent) != null)
ieVr = parseFloat(RegExp.$1);
}
else if (navigator.appName == 'Netscape')
{
var agent = navigator.userAgent;
var exp = new RegExp("Trident/.*ieVr:([0-9]{1,}[\.0-9]{0,})");
if (exp.exec(agent) != null)
ieVr = parseFloat(RegExp.$1);
}
return ieVr;
}
В соответствии с Дагом в PHP
preg_match('/MSIE (.*?);/', $_SERVER['HTTP_USER_AGENT'], $matches);
if(count($matches)<2){
preg_match('/Trident\/\d{1,2}.\d{1,2}; rv:([0-9]*)/', $_SERVER['HTTP_USER_AGENT'], $matches);
}
if (count($matches)>1){
//Then we're using IE
$version = $matches[1];
switch(true)
{
case ($version<=8):
//IE 8 or under!
break;
case ($version==9 || $version==10):
//IE9 & IE10!
break;
case ($version==11):
//Version 11!
break;
default:
//You get the idea
}
}
Почему меняется ваш пользователь их пользователем строку агента в том, что в IE 7? – Sampson
возможно, другая строка агента использования IE7. Я не знаю. – s7ven
То, что пользователь сообщает, - * по дизайну *. Изменение ua-строки ** предполагается **, чтобы сервер считал, что пользователь находится в IE 7. Это в значительной степени для целей тестирования или для того, чтобы обойти плохо написанное обнюхивание браузером. У пользователя вряд ли будет какая-либо действительная причина для просмотра веб-страниц с открытыми инструментами разработчика, чтобы они могли использовать ложную ua-строку. – Sampson