gpt4 book ai didi

php - 使用PHP检测IE浏览器版本

转载 作者:可可西里 更新时间:2023-11-01 00:04:11 25 4
gpt4 key购买 nike

我正在使用 $_SERVER['HTTP_USER_AGENT'] 来检测用户的浏览器。当我在 IE8 上的本地主机上运行 var_dump 时,它返回:...兼容的; MSIE 8.0; ...但是当我将它上传到我的主机(godaddy)时,我得到:...兼容的;微软 7.0; ...

有什么问题?

最佳答案

I'm using $_SERVER['HTTP_USER_AGENT'] to detect user's browser

是的,这就是问题所在。不要那样做。

User-Agent 字符串破解是一场失败的游戏。有许多奇怪的情况可能会使您的脚本感到困惑。

这是其中之一:IE8,当默认为兼容模式时,伪装成 IE7。您可以通过字符串中存在 Trident/... 来检测这种情况,但是当然像所有字符串黑客“解决方案”一样,如果该字符串恰好存在于其他字符串中,这将出错原因,可能是因为任何应用程序都可以将任意字符串粘贴到 IE 的 User-Agent header 的末尾,并且确实考虑到浏览器经常谎报它们是谁,并且中间人可能会更改或删除 header 。

此外,通过在服务器端进行浏览器嗅探,您的 HTTP 响应取决于查看它们的浏览器,这意味着代理缓存将向错误的浏览器提供错误的页面,除非您包含正确的 改变 header 。但如果你这样做,你就会破坏 IE 中的缓存。

服务器端 UA 嗅探是一种可怕的做法,只有在确实无法使用任何其他技术时,您才应将其用作最后的手段。对于向特定版本的 IE 显示不同内容的常见情况,您最好使用条件注释。

关于php - 使用PHP检测IE浏览器版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3220344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com