2012-04-06 47 views
3

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

我是新来的PHP和因此的问题。 IE SUCKS!

+1

这不是用PHP和IE的问题 - 它与HTML和IE的问题,因为PHP - 只有生成HTML文本。 – yAnTar 2012-04-06 14:39:13

+1

http://stackoverflow.com/questions/7745412/ie-specific-message – iambriansreed 2012-04-06 14:39:54

回答

2

使用用户代理检查:

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

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

它是否适用于IE 6和7的所有变种和颠覆? – user1263746 2012-04-06 14:40:18

+1

你的意思是服务包?是。 – Askent 2012-04-06 14:46:45

+0

经过测试,效果很棒!谢谢! – user1263746 2012-04-06 14:50:57

1

是的,你可以:

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

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

+0

我同意... IE 8和以上版本已经够用了...但是IE 6和IE 7都是CSS和JavaScript的地狱...因此我想禁用IE 6和7。 – user1263746 2012-04-06 14:47:05

+0

我部分同意。 “一位优秀的程序员在所有的浏览器中都会使它正确无误,这是网络上的困难”:当然,如果没有IE浏览器,那么浏览器是用脚做的!如果错误在浏览器中,为什么程序员必须修复它们?微软必须解决它们!如果所有网络开发人员都停止修复IE的漏洞,你会看到一个更好的IE新版本。 – user2342558 2017-03-24 13:21:45

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]-->