alone-php / browser
解析浏览器头
1.0.0
2025-05-29 08:34 UTC
Requires
- php: >=8.0
README
composer require alone-php/browse
PHP Browser UA 解析类
这是一个用于解析浏览器UA字符串的PHP类,可以识别用户的设备、操作系统、浏览器和应用信息。
功能特点
- 准确识别各种操作系统(Windows, macOS, iOS, Android, HarmonyOS等)
- 支持识别移动设备、平板和PC设备
- 支持识别各种浏览器(Chrome, Safari, Firefox, Edge等)
- 支持识别常见移动应用(微信, 支付宝, 微博, QQ等)
- 支持识别设备品牌和型号(iPhone, iPad, 华为, 小米, 三星等)
- 支持识别用户语言偏好
- 支持识别智能电视和游戏机等特殊设备
使用方法
// 引入Browser类 require_once 'Browser.php'; // 实例化Browser类 $browser = new Browser( $_SERVER['HTTP_USER_AGENT'], // 浏览器UA $_SERVER['HTTP_ACCEPT_LANGUAGE'] ?? '' // 语言信息 ); // 获取系统信息 echo "操作系统: " . $browser->getSystem() . " " . $browser->getSystemVersion() . "\n"; // 获取设备类型 echo "是否移动端: " . ($browser->isMobile() ? "是" : "否") . "\n"; echo "是否PC端: " . ($browser->isPC() ? "是" : "否") . "\n"; echo "是否平板: " . ($browser->isPad() ? "是" : "否") . "\n"; // 获取浏览器信息 echo "浏览器: " . $browser->getBrowserName() . " " . $browser->getBrowserVersion() . "\n"; // 获取应用信息 echo "应用: " . $browser->getAppName() . " " . $browser->getAppVersion() . "\n"; // 获取设备信息 echo "设备: " . $browser->getDevice() . "\n"; // 获取语言信息 echo "语言: " . $browser->getLanguage() . " (" . $browser->getLanguageName() . ")\n";
支持的操作系统
- Windows (7/8/8.1/10/11)
- macOS
- iOS
- iPadOS
- Android
- HarmonyOS (华为)
- Linux (Ubuntu, Debian, Fedora, CentOS)
- ChromeOS
- 智能电视系统 (Tizen, WebOS)
- 游戏机系统 (PlayStation, Xbox, Nintendo Switch)
支持的浏览器
- Chrome
- Safari
- Firefox
- Edge
- Opera
- Internet Explorer
- QQ浏览器
- UC浏览器
- 华为浏览器
- MIUI浏览器
- 搜狗浏览器
- 百度浏览器
- 三星浏览器
- OPPO浏览器
- vivo浏览器
支持的应用
- 微信 (WeChat)
- 支付宝 (Alipay)
- 微博 (Weibo)
- 抖音 (Douyin/TikTok)
- 淘宝/天猫
- 京东
- 百度
- 快手
- 小红书
支持的设备
- PC设备 (Windows, macOS, Linux)
- 苹果设备 (iPhone, iPad, iPod, Apple TV)
- 安卓手机 (各品牌)
- 平板设备 (iPad, 安卓平板)
- 华为设备 (P系列, Mate系列, 折叠屏等)
- 小米设备
- 三星设备 (Galaxy系列)
- OPPO设备
- vivo设备
- 智能电视
- 游戏机
测试脚本
test_simple.php
- 简单测试脚本test_ua_comprehensive.php
- 全面测试脚本test_ios.php
- iOS设备测试test_android.php
- Android设备测试test_harmony.php
- HarmonyOS设备测试test_summary.php
- 功能总结测试
注意事项
- UA字符串的格式可能会随时间变化,需要定期更新识别规则
- 在某些情况下,无法100%准确识别设备和浏览器信息
- 建议在实际应用中添加适当的容错机制