Une version qui va continuer à travailler avec IE10:
preg_match('/MSIE (.*?);/', $_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):
//IE9!
break;
default:
//You get the idea
}
}
Edit:
IE11 volonté de changer l'user agent de la syntaxe pour prévenir toutes les précédentes useragent reniflant de travail.
Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko
Si vous avez besoin d'être en mesure d'identifier IE11 (c'est rare, mais j'imagine qu'il y a des cas où c'est le cas), ce code devrait fonctionner:
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
}
}
Remarque: Le IE11 code est basé sur le useragent fourni par le IE11 aperçu de la documentation. C'est tout à fait possible que le format peut changer avant IE11 lui-même, si elle le fait, le code ci-dessus, ne sera probablement pas fonctionner correctement pour IE11.