vietstars / client-detect
基于Mobiledetect的桌面/移动用户代理解析器,支持Laravel
v0.0.4
2023-12-20 01:50 UTC
Requires
- php: ^8.0
- jaybizzle/crawler-detect: ^1.2
- mobiledetect/mobiledetectlib: ^2.7.6
Requires (Dev)
- php-coveralls/php-coveralls: ^2.1
- phpunit/phpunit: ^5.0|^6.0|^7.0
README
安装
使用composer安装
composer require vietstars/client-detect
Laravel(可选)
在config/app.php
中添加服务提供者
Vietstars\ClientDetect\ClientServiceProvider::class,
并将Client别名添加到config/app.php
'Client' => Vietstars\ClientDetect\Facades\Client::class,
基本用法
首先创建一个Client
实例(如果你使用Laravel,可以使用Client
外观)
use Vietstars\ClientDetect\Client; $client = new Client();
如果你想解析CLI脚本中的当前请求以外的用户代理,可以使用setUserAgent
和setHttpHeaders
方法
$client->setUserAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.13+ (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2'); $client->setHttpHeaders($headers);
所有原始的Mobile Detect方法仍然可用,请查看一些原始示例https://github.com/serbanghita/Mobile-Detect/wiki/Code-examples
是?
检查用户代理中的某个属性。
$client->is('Windows'); $client->is('Firefox'); $client->is('iPhone'); $client->is('OS X');
魔法is方法
与之前的is()
方法做同样的事情的魔法方法
$client->isAndroidOS(); $client->isNexus(); $client->isSafari();
移动设备检测
检查移动设备
$client->isMobile(); $client->isTablet();
匹配用户代理
使用正则表达式搜索用户代理
$client->match('regexp');
附加功能
接受语言
获取浏览器的接受语言。示例
$languages = $client->languages(); // ['nl-nl', 'nl', 'en-us', 'en']
设备名称
获取设备名称,如果是移动设备。(iPhone,Nexus,AsusTablet等)
$device = $client->device();
操作系统名称
获取操作系统。(Ubuntu,Windows,OS X等)
$platform = $client->platform();
浏览器名称
获取浏览器名称。(Chrome,IE,Safari,Firefox等)
$browser = $client->browser();
桌面检测
检查用户是否使用桌面设备。
$client->isDesktop();
这检查用户不是移动设备,平板电脑或机器人。
手机检测
检查用户是否使用手机设备。
$client->isPhone();
机器人检测
检查用户是否是机器人。这使用jaybizzle/crawler-detect进行实际机器人检测。
$client->isRobot();
机器人名称
获取机器人名称。
$robot = $client->robot();
浏览器/平台版本
MobileDetect最近添加了一个version
方法,可以获取组件的版本号。要获取浏览器或平台版本,可以使用
$browser = $client->browser(); $version = $client->version($browser); $platform = $client->platform(); $version = $client->version($platform);
注意,版本方法仍在测试中,所以可能不会返回正确的结果。