PHP:如果 Internet Explorer 6、7、8 或 9

2022-08-30 08:02:30

我想在PHP中为不同版本的Internet Explorer做一个条件,大致如下:

if($browser == ie6){ //do this} elseif($browser == ie7) { //dothis } elseif...

我见过类似代码的许多变体,但是寻找一些超级简单的东西,非常容易编码,做一些简单的if和other,做不同的事情。

谢谢

编辑:我需要这个向用户显示一些不同的消息,所以CSS条件等是不好的。


答案 1

这就是我最终使用的变体,它检查IE8及以下版本:

if (preg_match('/MSIE\s(?P<v>\d+)/i', @$_SERVER['HTTP_USER_AGENT'], $B) && $B['v'] <= 8) {
    // Browsers IE 8 and below
} else {
    // All other browsers
}

答案 2

一个将继续与 IE10 和 IE11 一起使用的版本:

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
  }
}

推荐