device-detector是一个非常实用的user agent分析库,可以非常容易的获取客户端各类信息.
获取设备类型
- 台式机
- 平板桌面
- 移动手机
- 电视盒子
- 车载系统
- 命令行控制台
获取客户端类型
- 浏览器
- feed阅读器
- 媒体播放器
- PIM软件(各类邮箱程序)
同时可以获取各种操作系统/品牌/型号等.
基本使用
使用方式非常简单,只要引入自动加载文件就能立即上手:
require_once 'vendor/autoload.php';
use DeviceDetector\ClientHints;
use DeviceDetector\DeviceDetector;
use DeviceDetector\Parser\Device\AbstractDeviceParser;
// 可选项:不对版本号做处理
// 默认只返回主要版本号(e.g. X.Y)
AbstractDeviceParser::setVersionTruncation(AbstractDeviceParser::VERSION_TRUNCATION_NONE);
$userAgent = $_SERVER['HTTP_USER_AGENT']; // 设置获取到的(对于现代框架而言,这种方法更合适)
$clientHints = ClientHints::factory($_SERVER); // 使用内置的获取方法
$dd = new DeviceDetector($userAgent, $clientHints);
// 可选项: 设置缓存
// 默认情况下,只是用静态类为缓存,只适合常驻后台的执行方式
// 可以指定一个文件缓存目录
// $dd->setCache(new Doctrine\Common\Cache\PhpFileCache('./tmp/'));
// 可选项:忽略大部分爬虫(可以提高一点点性能)
// $dd->discardBotInformation();
// 可选项:忽略全部爬虫(进一步提高性能)
// $dd->skipBotDetection();
$dd->parse();
if ($dd->isBot()) {
// 处理客户端
$botInfo = $dd->getBot();
} else {
$clientInfo = $dd->getClient(); // 获取客户端基本信息
$osInfo = $dd->getOs();
$device = $dd->getDeviceName();
$brand = $dd->getBrandName();
$model = $dd->getModel();
}
支持的设备类型判断方法
$dd->isSmartphone();
$dd->isFeaturePhone();
$dd->isTablet();
$dd->isPhablet();
$dd->isConsole();
$dd->isPortableMediaPlayer();
$dd->isCarBrowser();
$dd->isTV();
$dd->isSmartDisplay();
$dd->isSmartSpeaker();
$dd->isCamera();
$dd->isWearable();
$dd->isPeripheral();
支持的客户端判断方法
$dd->isBrowser();
$dd->isFeedReader();
$dd->isMobileApp();
$dd->isPIM();
$dd->isLibrary();
$dd->isMediaPlayer();
支持超过1000中设备信息判断
支持判断各种操作系统:
- Android
- Windows
- iOS
- Linux系列
- 等123个操作系统
支持各种浏览器:
- 360浏览器
- 火狐浏览器
- Edge
- 等359个浏览器
支持判断各种浏览器引擎:
- WebKit
- Blink
- 等16个引擎
支持各种HTTP客户端库:
- cURL
- Guzzle
- 等46个HTTP客户端
支持各种播放器:
- MPlayer
- VLC
- 等30个播放器
支持各种APP识别:
- 微信APP
- 等237个APP识别
还支持其他的各种信息收录识别,具体可以查看说明文件.
下图仅展示了一小部分,具体可以查看说明文件.
原文标题:[matomo/device-detector]一个通用的客户端设备分析库
原文地址:https://phpreturn.com/index/a6235c2d5f015f.html
原文平台:PHP武器库
版权声明:本文由phpreturn.com(PHP武器库官网)原创和首发,所有权利归phpreturn(PHP武器库)所有,本站允许任何形式的转载/引用文章,但必须同时注明出处。