我想在PHP中为不同版本的Internet Explorer做一个有条件的条件:
if($browser == ie6){ //do this} elseif($browser == ie7) { //dothis } elseif...
我已经看到了类似代码的许多变化,但是寻找一些非常简单的东西,很容易编写代码来做一些简单的if和else并做不同的事情.
谢谢
编辑:我需要这个向用户显示一些不同的消息,所以CSS条件等不是很好.
Cam*_*ron 130
这是我最终使用的变体,它检查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
}
Run Code Online (Sandbox Code Playgroud)
Dou*_*oug 84
一个将继续与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
}
}
Run Code Online (Sandbox Code Playgroud)
Mic*_*per 16
这是在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;
}
?>
Run Code Online (Sandbox Code Playgroud)
然后在你的代码中你可以说类似的东西
$browser = get_user_browser();
if($browser == "ie"){
//do stuff
}
Run Code Online (Sandbox Code Playgroud)
Daf*_*aff 15
您可以检查HTTP_USER_AGENT服务器变量.由IE传输的用户代理包含MSIE
if(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) { ... }
Run Code Online (Sandbox Code Playgroud)
对于特定版本,您可以扩展您的条件
if(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 6.') !== false) { ... }
Run Code Online (Sandbox Code Playgroud)
另请参阅此相关问题.
Vin*_*owe 10
我这样做
$u = $_SERVER['HTTP_USER_AGENT'];
$isIE7 = (bool)preg_match('/msie 7./i', $u );
$isIE8 = (bool)preg_match('/msie 8./i', $u );
$isIE9 = (bool)preg_match('/msie 9./i', $u );
$isIE10 = (bool)preg_match('/msie 10./i', $u );
if ($isIE9) {
//do ie9 stuff
}
Run Code Online (Sandbox Code Playgroud)
PHP有一个名为get_browser()的函数,它将返回一个对象(如果您愿意,还会返回数组),其中包含有关用户浏览器及其功能的详细信息.
一个简单的外观给了我这段代码:
$browser = get_browser( null, true );
if( $browser['name'] == "Firefox" )
if( $browser['majorversion'] == 4 )
echo "You're using Firefox version 4!";
Run Code Online (Sandbox Code Playgroud)
这不是一种万无一失的方式(因为它从HTTP_USER_AGENT中读取,可能是欺骗性的,有时会被php分析错误),但据我所知,它是最容易找到的.
if (isset($_SERVER['HTTP_USER_AGENT']) && preg_match("/(?i)msie|trident|edge/",$_SERVER['HTTP_USER_AGENT'])) {
// eh, IE found
}
Run Code Online (Sandbox Code Playgroud)