ornicar/php-user-agent

1.0.0 2013-07-09 13:01 UTC

This package is not auto-updated.

Last update: 2024-09-10 04:01:01 UTC


README

PHP5中的浏览器检测。使用简单快捷的算法识别主要浏览器。

概述

$userAgent = new phpUserAgent();

$userAgent->getBrowserName()      // firefox
$userAgent->getBrowserVersion()   // 3.6
$userAgent->getOperatingSystem()  // linux
$userAgent->getEngine()           // gecko

为什么你应该使用它

PHP提供了一个原生的检测用户浏览器的函数:get_browser()。get_browser()需要加载"browscap.ini"文件,该文件大小超过300KB。加载和处理此文件会影响脚本性能。有时,生产服务器甚至不提供browscap.ini。

尽管get_browser()提供的结果非常出色,但在大多数情况下,一个更简单的方法可能同样有效。php-user-agent具有体积小、易于扩展的优势。它性能也很高,因为它不进行任何迭代或递归操作。

使用方法

// include classes or rely on Composer autoloader
require_once '/path/to/php-user-agent/phpUserAgent.php';
require_once '/path/to/php-user-agent/phpUserAgentStringParser.php';

// Create a user agent
$userAgent = new phpUserAgent();

// Interrogate the user agent
$userAgent->getBrowserName()      // firefox
$userAgent->getBrowserVersion()   // 3.6
$userAgent->getOperatingSystem()  // linux
$userAgent->getEngine()           // gecko

高级

自定义用户代理字符串

当你创建phpUserAgent对象时,将使用当前的用户代理字符串。你可以指定另一个用户代理字符串

// use another user agent string
$userAgent = new phpUserAgent('msnbot/2.0b (+http://search.msn.com/msnbot.htm)');
$userAgent->getBrowserName() // msnbot

// use current user agent string
$userAgent = new phpUserAgent($_SERVER['HTTP_USER_AGENT');
// this is equivalent to:
$userAgent = new phpUserAgent();

自定义解析器类

默认情况下,使用phpUserAgentStringParser来分析用户代理字符串。你可以替换解析器实例并自定义它以满足你的需求

// create a custom user agent string parser
class myUserAgentStringParser extends phpUserAgentStringParser
{
  // override methods
}

// inject the custom parser when creating a user agent:
$userAgent = new phpUserAgent(null, new myUserAgentStringParser());

运行测试

你可以在服务器上运行单元测试

$ php prove.php

贡献

如果你发现这个库无法识别的浏览器或操作系统,请随意提交问题。请提供用户代理字符串。当然,如果你还想提供补丁,那就更好了。