ornicar / php-user-agent
1.0.0
2013-07-09 13:01 UTC
Requires
- php: >=5.3.0
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
贡献
如果你发现这个库无法识别的浏览器或操作系统,请随意提交问题。请提供用户代理字符串。当然,如果你还想提供补丁,那就更好了。