当前位置:  开发笔记 > 编程语言 > 正文

我可以用PHP检测IE6吗?

如何解决《我可以用PHP检测IE6吗?》经验,为你挑选了6个好方法。

有没有办法使用PHP来检测是否使用IE6加载页面?



1> Jeremy Ruten..:

尝试检查他们的用户代理'MSIE 6.'.

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

这基于此用户代理信息.


这通常也会匹配Opera,因为Opera经常在其用户代理字符串中添加"MSIE 6.0".
Opera的最新版本(默认情况下)在用户代理字符串中具有MSIE 6.0
在我的情况下,这对所有MSIE浏览器都是误报,因为它们都列出了"MSIE 6.0兼容",即使它们的版本实际上更高.
@thomasrutter - 只需将`&&!strpos($ _ SERVER ['HTTP_USER_AGENT'],'Opera')添加到`if`条件

2> Ólafur Waage..:

你可以用这种方式用HTML检测IE6


这是一个关于如何在PHP Way Back Machine中完成的链接,但我在解析$_SERVER["HTTP_USER_AGENT"]IE6时遇到了很多误报


这有时可能很有用,但实际上并不是问题的答案.它询问如何使用PHP这样做.用户代理可能是IE,但它可能不是呈现HTML.

3> thomasrutter..:

此页面上的许多基于用户代理的答案都不太可靠,因为Opera通常使用包含"MSIE 6.0"的用户代理字符串来标识自己,例如:

Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux i686; en) Opera 9.51

这会影响Opera 5到9甚至Opera 10的所有版本,并且可以在Opera中打开或关闭. 看到这个页面.

我见过的常见方法是测试"MSIE"和"Opera".例如,

if (preg_match('/\bmsie 6/i', $ua) && !preg_match('/\bopera/i', $ua))
  echo "We have IE6!";


strpos()将在这里更快地完成工作.
$ ua = $ _SERVER ['HTTP_USER_AGENT']; if(preg_match('/\bmsie [56]\./ i',$ ua)&&!preg_match('/\b(opera | msie [789])/ i',$ ua)){echo'IE 5或6' ; }

4> marverix..:

PHLAK ......

我觉得这个好多了:P

  if(preg_match('/msie [2-6]/i',$_SERVER['HTTP_USER_AGENT'])) {
   // if IE<=6
  } else {
   //if IE>6
  }



5> OIS..:

您可以将get_browser与更新的browscap.ini文件一起使用.



6> broox..:

像其他人一样说,有误报的只是检查用户代理...那么,为什么不使用这两种,用户代理检查和条件注释.

例如...


  

这样您就不会将这些不必要的代码发送回大多数浏览器......但是如果出现误报,仍然是安全的.

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有