sb15 / phpbrowscap
php原生get_browser()函数的独立替代方案
Requires
- php: >=5.3.0
This package is auto-updated.
Last update: 2024-09-12 03:16:27 UTC
README
通过PHP进行黑客式攻击,以获得比get_browser()更好的解决方案
变更(新版本 - 2.0)
请参阅变更日志以获取最近更改的列表。(性能大幅提升!)
介绍
browscap.ini 文件是一个数据库,提供了大量有关浏览器及其功能的信息,例如名称、版本、JavaScript支持等。
请注意:browscap.ini 由Gary Keith维护,现在由RAD Moose维护。有关所有权转移的更多信息,请参阅此处。Browscap.ini源文件目前在临时位置(http://tempdownloads.browserscap.com/)可用。所有Browscap类中的链接都已更新,但如果你使用自定义链接,请记得更改它们!
PHP的本地get_browser()函数解析此文件,并为您提供有关每个浏览器的详细信息的完整集合,但需要指定browscap.ini browscap指令的路径,该指令标记为PHP_INI_SYSTEM。
由于在大多数共享托管环境中您没有访问php.ini文件的权限,因此无法修改browscap指令,您将陷入使用过时的数据库或完全没有browscap支持的局面。
Browscap是一个PHP >=5.3的独立类,它绕过了get_browser()的限制并管理整个流程。它提供了更新、缓存、适应和获取每个提供的用户代理详细信息的方法。它也比get_browser()快得多,同时仍然返回相同的结果。
Browscap是一个Composer包。
快速入门
快速入门指南可在GitHub wiki上找到,地址如下:https://github.com/GaretJax/phpbrowscap/wiki/QuickStart
功能
以下是Browscap类的非详尽功能列表
- 非常快
- 在不使用opcache的情况下,比get_browser()快至少3倍
- 使用opcache时比get_browser()快20倍以上(查看测试)
- 独立且完全独立于PHP配置(无需在php.ini中进行设置)
- 完全兼容get_browser()(修复了一些get_browser()的bug)
- 自动检测用户代理
- 返回对象或数组
- 将解析的.ini文件直接缓存在PHP数组中(利用opcache)
- 接受任何.ini文件(甚至ASP和轻量版)
- 从远程服务器自动更新browscap.ini文件和缓存,并检查版本
- 完全可配置,包括可配置的远程更新服务器和更新计划
- 兼容
PHP >= 5.3 - 在MIT许可证下发布
问题和功能请求
请将您的问题和新功能请求报告到GitHub Issue Tracker:[https://github.com/GaretJax/phpbrowscap/issues](https://github.com/GaretJax/phpbrowscap/issues)
请在此Google Groups上报告在browscap.ini文件中识别错误的User Agents和浏览器检测:[https://groups.google.com/forum/#!forum/browscap](https://groups.google.com/forum/#!forum/browscap)
请注意,Browscap类仅解析和查询由RAD Moose(以前由Gary Keith提供)提供的browscap.ini数据库。如果浏览器被错误识别或结果呈现错误属性,请直接参考临时browscap项目主页:[http://tempdownloads.browserscap.com/](http://tempdownloads.browserscap.com/),或者将您误识别的浏览器和User Agent发布在Browscap Google Groups页面:[https://groups.google.com/forum/#!forum/browscap](https://groups.google.com/forum/#!forum/browscap)