在php中检测浏览器,版本和平台的可靠方法
2022-08-30 20:09:05
我一直在寻找一种可靠的方法(至少是那些不那么晦涩难懂的方法):
- 浏览器的名称
- 版本
- 以及它所在的平台 (OS)
- 也许更多的信息,但上面的3个信息就足够了。
我想根据这些信息显示自定义内容,例如:
如果用户想知道如何清除浏览器上的cookie。假设我有许多内容已经可用于许多浏览器。版本,我想自动加载适当的内容
有没有办法不涉及Javascript来获得这些值?
我有一些用例,其中浏览器未找到或不准确。所以我想有最可靠的解决方案。
以下是2个网站,可以完全满足我的需求:
- www.whatismybrowser.com(联系老板知道如何用PHP做)
- 鹰浏览器真正详尽的测试,不是免费的
其他与部分解决方案的链接:
- upgrademybrowser.org 使用 2012 年 8 月的旧版浏览器盖帽(来源)
- 谷歌 www.whatbrowser.org
花了很多天时间尝试,酝酿,但没有成功。我从Stackoverflow社区找到了很多提示:
- 带有 get_browser() 的浏览器帽。该项目已停止(目前为2012年8月8日),并且没有检测到一些现代流行的手持设备。
- Javascript detect feature approach : Modernirz.对于我想做的事情来说,这不是一个好的方法,要长,并且必须经常更新。
- jQuery.browser 不够好,可能性不够。
- quirksmode.org javascript,现在与移动设备并不准确,并且更喜欢PHP版本。
其他有用的链接 :
编辑 1到目前为止,我已经测试了答案和评论。这些解决方案非常令人满意:
- PHP移动检测最后一个版本真的很好,如果你正在使用它,那么在示例中给客户端表单会很好,这样他们就可以为项目做出贡献。(感谢@Pekka)
-
WURFL不是最近的,但也非常好。(感谢@Ian罗伯茨)
编辑 2PHP 移动检测使用 WURFL
更新
确保您收到的标头未被任何其他库修改。
例如,一些安全库,如OWASP PhpSec [ABANDONED]将标头结构更改为自定义对象,PHP移动检测不再有权访问所需的所有信息。
对于那些使用OWASP PhpSec [ABANDONED]的人来说,http库正在修改全局标头对象结构。(2013年12月)因此,如果您遇到问题,只需在使用http库包含任何OWASP PhpSec类之前使用PHP移动检测