是否可以使用PHP get_browser()方法在特定版本下重定向浏览器?
示例:
重定向Internet Explorer 9,Safari 6,Chrome 26.0.1410.64,Opera 12和Firefox 20下的所有浏览器。
这样做的目的是当访问者访问我的网站时,我可以将它们重定向到降级版本(不使用HTML5或CSS3),或者我可以通知他们有更新可用(意思是我必须在新版本时更新我的代码。)
此外,我宁愿将它们重定向到我网站的降级版本,但获取版本号的任何帮助都会很棒。
由于
我发现这行代码正在进行Google搜索,但我对PHP很新,我真的不知道从哪里开始将这种类型的脚本放在一起。 :(
$using_ie6 = (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 6.') !== FALSE);
答案 0 :(得分:0)
如果您不想使用旧版浏览器访问您的网站,则应在用户访问您的网站之前创建索引文件。
像这样的结构:- root
-- index.php
-- yourWebsiteFolder
--- website files ...
在index.php中,您可以使用以下代码检查用户浏览器:
$browsers = "mozilla msie gecko firefox ";
$browsers.= "konqueror safari netscape navigator ";
$browsers.= "opera mosaic lynx amaya omniweb maxthon theworld traveler chrome";
$browsers = explode(" ", $browsers);
$nua = strToLower( $_SERVER['HTTP_USER_AGENT']);
$l = strlen($nua);
for ($i=0; $i<count($browsers); $i++){
$browser = $browsers[$i];
$n = stristr($nua, $browser);
if(strlen($n)>0){
$GLOBALS["ver"] = "";
$GLOBALS["nav"] = $browser;
$j=strpos($nua, $GLOBALS["nav"])+$n+strlen($GLOBALS["nav"])+1;
for (; $j<=$l; $j++){
$s = substr ($nua, $j, 1);
if(is_numeric($GLOBALS["ver"].$s) )
$GLOBALS["ver"] .= $s;
else
break;
}
}
}
if( ($GLOBALS["nav"] == "firefox" && $GLOBALS["ver"] <= 15) || ( $GLOBALS["nav"] == "msie" && $GLOBALS["ver"] <= 8 ) ) {
// browser is older
}
else
{
// go to website
header("location: yourWebsiteFolder");
}
在此代码中,如果用户的浏览器是firefox 15或更低版本,或者是IE 8或更低版本,则可以打印错误消息,否则用户可以访问您的网站。
答案 1 :(得分:-2)
这可能不是您正在寻找的答案,但是:
不要这样做!
相反:(大部分内容已在评论中提及)
概括:HTML5并不是一些超酷的新标记。它主要是一些新标签,它们的默认行为可以在旧版浏览器中显示。 大多数新的CSS3东西是一些非常有用的eyecandy,但仅此而已。示例:没有CSS3渐变 - 没有问题。对于不支持此功能的浏览器,请使用纯色或“旧学校”图像。
同样,正如评论modenizr所述,这是一个很好的起点。