3

我有一个在 IE 6 和 7 中崩溃的 PHP 页面,因此我希望用户不要使用 IE。他们肯定会忽略警告和通知。因此,作为一种解决方案,如果请求来自 IE,我是否可以停止渲染页面并仅显示不支持 IE 的行?

我是 php 新手,因此是这个问题。即糟透了!

4

5 回答 5

2

使用用户代理检查:

if(stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE 6.0')) {
    echo 'IE6'
};

if(stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE 7.0')) {
    echo 'IE7';
};
于 2012-04-06T14:38:18.857 回答
2

您可以使用以下命令访问 HTTP 用户代理请求参数:$_SERVER['HTTP_USER_AGENT']。

$usingIE6 = (strpos( $_SERVER['HTTP_USER_AGENT'], 'MSIE 6.' ) !== FALSE);

if ($usingIE6) {
  echo 'Please upgrade your browser'; 
  exit;
}

使用统计在这里,IE 6 拥有 7% 的市场份额: http ://marketshare.hitslink.com/browser-market-share.aspx?qprid=2&qpcustomd=0

于 2012-04-06T14:43:47.250 回答
1

是的你可以:

if (isset($_SERVER['HTTP_USER_AGENT']) && 
   (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false))

它只是一个片段,我知道 IE 不是最好的浏览器,但一个好的程序员应该查看所有浏览器并使其在所有浏览器中都正确......这是 Web 开发的实际困难。

于 2012-04-06T14:40:26.367 回答
1

您可以从超全局 $_SERVER 对 HTTP_USER_AGENT 进行测试;

但只是为了提供另一个选项(这可能不是您所需要的,因为它会获取更多信息并且它需要一个额外的文件)您可以使用依赖于browscap的get_browser这更多是为了以防您有时需要有关游客

于 2012-04-06T14:41:44.730 回答
0

PHP 有一个名为get_browser的函数,它将返回您需要的所有版本信息。

您还可以使用 IE 能够破译的条件注释:

<!--[if lt IE 8]>Your browser is too old for this app. Please upgrade.<![endif]-->
于 2012-04-06T14:56:52.977 回答