我想在 PHP 中按照以下方式对不同版本的Internet Explorer进行条件判断:
if($browser == ie6){ //执行这个代码} elseif($browser == ie7) { //执行这个代码 } elseif...
我已经看到过许多类似代码的变体,但是我正在寻找一些非常简单易懂的代码来执行一些简单的 if 和 else,从而执行不同的操作。
谢谢
编辑:我需要展示一些不同的消息给用户,因此 CSS 的条件语句等都不太适用。
我想在 PHP 中按照以下方式对不同版本的Internet Explorer进行条件判断:
if($browser == ie6){ //执行这个代码} elseif($browser == ie7) { //执行这个代码 } elseif...
我已经看到过许多类似代码的变体,但是我正在寻找一些非常简单易懂的代码来执行一些简单的 if 和 else,从而执行不同的操作。
谢谢
编辑:我需要展示一些不同的消息给用户,因此 CSS 的条件语句等都不太适用。
<!--[if IE 6]>
<style type="text/css">
div.ie6 { display:block; }
</style>
<![endif]-->
<!--[if IE 7]>
<style type="text/css">
div.ie7 { display:block; }
</style>
<![endif]-->
<!--[if IE 8]>
<style type="text/css">
div.ie8 { display:block; }
</style>
<![endif]-->
<!--[if IE 9]>
message1
<![endif]-->
<!--[if !IE 6]>
message2
<![endif]-->
<!--[if lt IE 8]>
message3
<![endif]-->
或者使用不同的CSS div
<!--[if lte IE 8]>
<style type="text/css">
div.lteie8 { display:block; }
</style>
<![endif]-->
<!--[if gt IE 6]>
<style type="text/css">
div.gtie6 { display:block; }
</style>
<![endif]-->
<!--[if gte IE 6]>
<style type="text/css">
div.gteie6 { display:block; }
</style>
<![endif]-->
'HTTP_USER_AGENT' 如果有当前请求的User-Agent标头,则为User-Agent标头的内容。这是一个字符串,表示正在访问页面的用户代理。一个典型的例子是:Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586)。除其他外,您可以使用此值与get_browser()一起使用,以使您的页面输出适应用户代理的功能。
因此,我假设您将能够从$_SERVER ["HTTP_USER_AGENT"]变量中获取浏览器名称/ ID。
function get_browser()
{
$browser = '';
$ua = strtolower($_SERVER['HTTP_USER_AGENT']);
if (preg_match('~(?:msie ?|trident.+?; ?rv: ?)(\d+)~', $ua, $matches)) $browser = 'ie ie'.$matches[1];
elseif (preg_match('~(safari|chrome|firefox)~', $ua, $matches)) $browser = $matches[1];
return $browser;
}
注意'Trident'中的大小写:
if (isset($_SERVER['HTTP_USER_AGENT']) &&
((strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) || strpos($_SERVER['HTTP_USER_AGENT'], 'Trident') !== false)) {
// IE is here :-(
}
如果您使用的是运行在触摸屏电脑上的Internet Explorer 11,您必须使用以下代码:
preg_match('/Trident/7.0; Touch; rv:11.0/', $_SERVER['HTTP_USER_AGENT'])
而不是:
preg_match('/Trident/7.0; rv:11.0/', $_SERVER['HTTP_USER_AGENT'])
采用三角分布方法会更好。 这是一个快速检查IE 8的函数。
<?php
function is_IE8(){
if(strpos(str_replace(' ', '', $_SERVER['HTTP_USER_AGENT']),'Trident/4.0')!== FALSE){
return TRUE;
};
return FALSE;
}
?>