sb15/phpbrowscap

php原生get_browser()函数的独立替代方案

2.0.1 2015-04-14 06:08 UTC

This package is auto-updated.

Last update: 2024-09-12 03:16:27 UTC


README

通过PHP进行黑客式攻击,以获得比get_browser()更好的解决方案

Build Status

变更(新版本 - 2.0)

请参阅变更日志以获取最近更改的列表。(性能大幅提升!)

介绍

browscap.ini 文件是一个数据库,提供了大量有关浏览器及其功能的信息,例如名称、版本、JavaScript支持等。

请注意:browscap.iniGary 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)