donatj / phpuseragentparser
闪电般快速、极简主义PHP UserAgent字符串解析器。
Requires
- php: >=5.4.0
- ext-ctype: *
Requires (Dev)
- ext-json: *
- camspiers/json-pretty: ~1.0
- donatj/drop: *
- phpunit/phpunit: ~4.8|~9
- dev-master
- v1.9.0
- v1.8.0
- v1.7.0
- v1.6.1
- v1.6.0
- v1.5.0
- v1.4.0
- v1.3.0
- v1.2.0
- v1.1.0
- v1.0.0
- v0.23.0
- v0.22.0
- v0.21.1
- v0.21.0
- v0.20.0
- v0.19.0
- v0.18.0
- v0.17.0
- v0.16.0
- v0.15.0
- v0.14.0
- v0.13.0
- v0.12.0
- v0.11.1
- v0.10.0
- v0.9.0
- v0.8.0
- v0.7.0
- v0.6.0
- v0.5.3
- v0.5.2
- v0.5.1
- v0.5.0
- v0.4.0
- v0.3.6
- v0.3.5
- v0.3.4
- v0.3.3
- v0.3.2
- v0.3.1
- v0.3.0
- v0.2.2
- v0.2.1
- v0.2.0
- v0.1.6
- v0.1.5
- v0.1.4
- v0.1.3
- v0.1.2
- v0.1.1
- v0.1.0
- dev-phpstan2
- dev-mastodon
- dev-chatgpt
- dev-retro
- dev-81_nightly
- dev-reorg
- dev-patch-1
- dev-os_version_detection
This package is auto-updated.
Last update: 2024-08-29 15:49:15 UTC
README
这是什么
简单的PHP用户代理解析器!
在MIT许可下发布:https://www.opensource.org/licenses/mit-license.php
升级到1.*
新的1.*
版本不会与0.*
版本冲突,升级时无需更改。然而,全局的parse_user_agent
已被弃用;它已被命名空间\donatj\UserAgent\parse_user_agent
所替代,并具有完全相同的功能。您可以将任何现有的对parse_user_agent
的调用替换为\donatj\UserAgent\parse_user_agent
此外,1.x添加了一个便利的对象包装器,您可以选择使用。更多详细信息请参阅下面的使用部分。
为什么使用这个
您有选择用户代理解析器的自由。这个解析器以非常轻量、快速、易懂的方式检测所有现代浏览器。它只有不到200行代码,仅由三个正则表达式组成!它还可以正确识别其他解析器无法识别的IE版本。
它提供了100%的单元测试覆盖率,可以通过Composer安装,并且非常易于使用。
它不做什么
这不是一个浏览器“知识引擎”,而是一个简单的解析器。任何没有由用户代理字符串本身直接提供的任何信息,都不会由这个解析器提供。
操作系统版本
用户代理字符串不是操作系统版本的可靠来源!
- 许多代理根本不发送信息。
- 其他提供不同级别的准确性。
- 仅解析Windows版本几乎会将近加倍代码的大小。
我更感兴趣的是保持这个项目小巧和准确,而不是添加特殊功能,因此我会更专注于能够做好的事情。
话虽如此,我已经为一位客户创建了一个分支来处理这个问题,如果您想查看它,我会不时更新它,但坦白说,如果您需要可靠地检测操作系统版本,使用用户代理字符串并不是最佳选择。我会选择使用JavaScript。
无法检测的浏览器
- Brave - Brave与Chrome无法区分。这是他们的一项设计决策。
无法检测的平台
- iPadOS 13+ - 从iPadOS 13开始,并在14中进一步强化,iPadOS返回与macOS相同的完全相同的字符串。不再可以通过UA字符串区分。(#69)
需求
- php: >=5.4.0
- ext-ctype: *
安装
PHP User Agent可以通过Composer通过Packagist获取。
使用以下命令安装最新版本
composer require 'donatj/phpuseragentparser'
用法
经典的程序式用法很简单
<?php // if you're using composer require __DIR__ . '/../vendor/autoload.php'; // v0 style global function - @deprecated $uaInfo = parse_user_agent(); // or // modern namespaced function $uaInfo = donatj\UserAgent\parse_user_agent(); echo $uaInfo[donatj\UserAgent\PLATFORM] . PHP_EOL; echo $uaInfo[donatj\UserAgent\BROWSER] . PHP_EOL; echo $uaInfo[donatj\UserAgent\BROWSER_VERSION] . PHP_EOL;
新的面向对象包装器形式
<?php use donatj\UserAgent\UserAgentParser; // if you're using composer require __DIR__ . '/../vendor/autoload.php'; $parser = new UserAgentParser(); // object-oriented call $ua = $parser->parse(); // or // command style invocation $ua = $parser(); echo $ua->platform() . PHP_EOL; echo $ua->browser() . PHP_EOL; echo $ua->browserVersion() . PHP_EOL;
当前检测到的平台
来自donatj\UserAgent\Platforms
的预定义辅助常量
当前检测到的浏览器
来自 donatj\UserAgent\Browsers
的预定义帮助常量
更多信息请访问 Donat Studios。