-1

是否可以使用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);
4

2 回答 2

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 或更低版本,您可以打印您的错误消息,否则用户可以访问您的网站。

于 2013-04-28T23:10:49.323 回答
-2

这可能不是您正在寻找的答案,但是:

不要这样做!

  • 服务器端的浏览器检测从来都不是可靠的。
  • 如果搜索引擎发现您向访问者提供不同的内容,您迟早会受到惩罚。

相反:(其中大部分已在评论中提到)

  • 检测您使用的功能,而不是浏览器。在客户端做。
  • 检查您需要的功能是否可以通过您注入的一些 JavaScript 来完成,以防该功能不可用。
  • 如果某个功能不可用且无法模拟,则显示一条小消息,或者对于大多数 CSS3 问题,以某种方式忽略它们。(例如:如果浏览器不支持 CSS3 过渡,这在大多数用例中都可以。旧浏览器不显示动画,但显示的最终结果将是相同的。)

概括地说:HTML5 并不是一些超级酷的全新标记。它主要是一些新标签,它们的默认行为可以在旧浏览器中显示。大多数新的 CSS3 东西都是一些非常有用的东西,但仅此而已。示例:没有 CSS3 渐变 - 没有问题。对不支持此功能的浏览器使用纯色或“老派”图像。

同样,正如评论中所说,modenizr是一个很好的起点。

于 2013-05-07T13:11:28.880 回答