garetjax/phpbrowscap

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

2.0 2014-02-04 09:18 UTC

This package is not auto-updated.

Last update: 2024-09-22 02:52:07 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文件的路径到php.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问题跟踪器:[https://github.com/GaretJax/phpbrowscap/issues](https://github.com/GaretJax/phpbrowscap/issues)(外部链接)

请在此Google Groups中报告误识别的用户代理和browscap.ini文件中的浏览器检测:[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/)(外部链接)或在其Google Groups页面发布您误识别的浏览器和用户代理:[https://groups.google.com/forum/#!forum/browscap](https://groups.google.com/forum/#!forum/browscap)(外部链接)