【问题标题】:PHP - Checking for IE, understanding $_SERVER['HTTP_USER_AGENT'] [duplicate]PHP - 检查 IE,了解 $_SERVER['HTTP_USER_AGENT'] [重复]
【发布时间】:2016-01-28 19:17:41
【问题描述】:

我知道一些非常简单的 PHP,并决定从头开始,并正在查看 php.net http://php.net/manual/en/tutorial.useful.php 在这个页面上,它在一个例子中提到了如何检查 IE。

<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
    echo 'You are using Internet Explorer.<br />';
}
?>

我有一个非常小的测试页面,我正在浏览这里的部分,这就是我写下来的内容......

<html>
    <head>
        <title>PHP startup testing page</title>
    </head>
    <body>
<?php 
        echo "<p>Hello World</p>";
        echo $_SERVER['HTTP_USER_AGENT']; //outputs the kind of browser the visitor is using.
        if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
            echo 'You are using Internet Explorer.<br />';
        }
?>
    </body>
</html>

我不明白为什么当我将它加载到 Internet Explorer 时,我屏幕上的输出是 Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) 像 Gecko em> 和 if 语句因此不返回任何内容。有什么我没有得到的非常基本的东西吗?

【问题讨论】:

  • 用户代理字符串提供给 PHP 是值得的,但并不可靠。如果您需要特定的东西,我相信客户端功能检测会更好地为您服务。

标签: php user-agent


【解决方案1】:

IE 11 不再在用户代理字符串中使用 MSIE,检测浏览器也是不好的做法,您应该使用 Modernizer https://modernizr.com/ 等库检测功能,这里是 IE 11 用户代理字符串的链接https://msdn.microsoft.com/en-us/library/ms537503%28v=vs.85%29.aspx

【讨论】:

  • 哇,非常感谢您提供的信息!如果你不介意我问,那么在字符串中搜索“Trident”有什么害处?
  • @JoeL 看看使用Trident useragentstring.com/pages/Browserlist 的所有浏览器的列表,根据浏览器的功能创建您的网站比基于浏览器更容易,此外用户可以更改他们的用户代理字符串。
  • 点得很好。我将研究modernizr.com 以及如何在我的浏览器检查中使用它。这将是我的最后一个,然后我将继续我的快乐之路。对于初学者的东西,我仍然应该擅长使用 php.net 吗?或者就过时的信息而言,这种异常值。 @cmorrissey
  • php.net 非常适合参考,请查看phptherightway.com 了解更多信息,并查看您当地的书店以查找过去一年出版的涵盖 php、mysql、html、css 的书籍, 和 js。
猜你喜欢
  • 2014-11-30
  • 2016-03-17
  • 2023-04-04
  • 2017-01-03
  • 1970-01-01
  • 1970-01-01
  • 2013-04-14
  • 2011-09-21
  • 2019-06-28
相关资源
最近更新 更多