我想用PHP为不同版本的Internet Explorer做一个条件,如下所示:
if($browser == ie6){ //do this} elseif($browser == ie7) { //dothis } elseif...
我已经看到了类似代码的许多变体,但寻找一些超级简单的东西,很容易编写代码来做一些简单的if和else,并做不同的事情。
谢谢
编辑:我需要这个来显示一些不同的消息给用户,所以CSS条件等不好。
发布于 2011-03-15 01:59:01
这就是我最终使用的变体,它检查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
}
发布于 2012-07-31 21:45:37
将继续与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
}
}
发布于 2011-03-15 01:54:15
这里有一个在php中检测浏览器的很好的资源:http://php.net/manual/en/function.get-browser.php
下面是一个看起来最简单的例子:
<?php
function get_user_browser()
{
$u_agent = $_SERVER['HTTP_USER_AGENT'];
$ub = '';
if(preg_match('/MSIE/i',$u_agent))
{
$ub = "ie";
}
elseif(preg_match('/Firefox/i',$u_agent))
{
$ub = "firefox";
}
elseif(preg_match('/Safari/i',$u_agent))
{
$ub = "safari";
}
elseif(preg_match('/Chrome/i',$u_agent))
{
$ub = "chrome";
}
elseif(preg_match('/Flock/i',$u_agent))
{
$ub = "flock";
}
elseif(preg_match('/Opera/i',$u_agent))
{
$ub = "opera";
}
return $ub;
}
?>
然后在稍后的代码中,您可以这样说
$browser = get_user_browser();
if($browser == "ie"){
//do stuff
}
https://stackoverflow.com/questions/5302302
复制相似问题