使用PHP检查IE浏览器是否存在是否不好?

3

我正在开发一个WordPress主题,需要设置一个检查IE的功能。我想检查Internet Explorer 7,所以如果我使用以下代码:

<?php
if (preg_match('/\bmsie 7/i', $ua) && !preg_match('/\bopera/i', $ua))
echo 'Do Something' 
?>

改为:

<!--[if lt IE 7]>
Do Something
<![endif]-->

有什么缺点吗?只是在需要时加载HTML。任何见解都将不胜感激。

编辑

发现了这篇关于用PHP的好文章:http://www.kingofdevelopers.com/php-classes/get-browser-name-version.php

4个回答

2
尝试检测平台、引擎和版本,这涵盖了很多可能的浏览器,并让我基于此编码,例如,引擎Gecko,涵盖了Firefox、Seamonkey和所有基于Gecko的浏览器。
在PHP中使用


$browser = get_browser(null, true);
print_r($browser);

get_browser() 函数使用的是 Browser Capabilities Project 的一部分,即 browscap.ini 文件。不幸的是,该项目目前已关闭。最好在确保该项目将重新开放之前不要使用此函数。 - cryptic ツ
@cryptic,你能给我这里的链接吗(http://php.net/manual/en/function.get-browser.php)?没有警告。 - NullPoiиteя
https://groups.google.com/forum/#!topic/browscap/Yy3Djd1Mqvk http://browsers.garykeith.com/ https://github.com/GaretJax/phpbrowscap/issues/24 - cryptic ツ
这是最近发生的事情,所以 PHP 文档尚未反映出来。官方下载页面在 PHP 文档中,访问它会告诉你。 - cryptic ツ

1

两种方法都是正确的。第二种方法是客户端方式,如果您使用一些常见的活动,例如-包括SVG特定元素、IE特定样式表等,您将减少服务器端处理。


0
我同意user1759084的观点,他们都是“正确”的,但这取决于您要传输多少HTML。如果它是相当大的,则更有意义在服务器上进行检查(PHP检查),如果只是几行,则最好让客户端决定(HTML条件)。你真的应该使用功能检测而不是浏览器检测,但有些情况下这种方法并不能奏效。

0

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