不将PHP页面呈现给IE浏览器

3

我有一个PHP页面,在IE 6和7中会崩溃,因此我希望用户不要使用IE。他们肯定会忽略警告和提示。所以作为解决方案,如果请求来自IE,我可以停止呈现页面并显示一行文本,表示不支持IE吗?

我对php很陌生,所以问这个问题。IE太烂了!


1
这不是 PHP 和 IE 的问题 - 这是 HTML 和 IE 的问题,因为 PHP 只生成 HTML 文本。 - yAnTar
1
http://stackoverflow.com/questions/7745412/ie-specific-message - iambriansreed
5个回答

3

使用用户代理检查:

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

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

1
你是指服务包吗?是的。 - Vlad Volkov

2

1

可以的:

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

这只是一个代码片段,我知道IE不是最好的浏览器,但是一个好的程序员应该考虑到所有的浏览器,并且在所有浏览器上都能正确运行... 这是Web开发中实际的难点。


我同意...IE 8及以上版本已经足够好了...但是IE 6和7在CSS和JavaScript方面非常糟糕...因此我想禁用IE 6和7。 - user1263746
我部分地同意。“一个好的程序员应该看到所有的浏览器并使其正确,这是网络上的难点”:当然,但是没有IE,那就是用脚做出来的浏览器!如果错误在浏览器中,为什么程序员必须修复它们?Microsoft必须修复它们!如果所有的网页开发者停止修复IE的错误,你会看到一个更好的新版本的IE。 - user2342558

1

你可以从超全局变量 $_SERVER 中测试 HTTP_USER_AGENT;

但是如果你需要其他更多的信息并且愿意使用一个额外的文件,你可以考虑另一种选择get_browser,它依赖于browscap,这更适合在某些时候需要获取有关访问者的其他详细信息时使用。


0

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

您还可以使用IE能够解密的条件注释:

<!--[if lt IE 8]>Your browser is too old for this app. Please upgrade.<![endif]-->

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接