luscalopez / laravel-mobile-detect
支持 Laravel 的桌面/移动用户代理解析器,基于 MobileDetect
Requires
- php: ^7.4|^8.0
- jaybizzle/crawler-detect: ^1.2
- mobiledetect/mobiledetectlib: ^4.8
Requires (Dev)
- php-coveralls/php-coveralls: ^v2.5.2
- phpunit/phpunit: ^9.5.13
Suggests
- illuminate/support: Required for laravel service providers
This package is auto-updated.
Last update: 2024-09-30 01:57:37 UTC
README
感谢 jenssegers/agent 提供原始版本。
一个支持 Laravel 的 PHP 桌面/移动用户代理解析器,基于 Mobile Detect,并添加了桌面支持和额外功能。
安装
使用 composer 安装
composer require Luscalopez/laravel-mobile-detect
Laravel(可选)
在 config/app.php
中添加服务提供者
Luscalopez\LaravelMobileDetect\AgentServiceProvider::class,
并在 config/app.php
中添加 Agent 别名
'Agent' => Luscalopez\LaravelMobileDetect\Facades\Agent::class,
基本用法
首先创建一个 Agent
实例(如果您使用 Laravel,则可以使用 Agent
Facade)
use Luscalopez\LaravelMobileDetect\Agent; $agent = new Agent();
如果您想解析 CLI 脚本中的当前请求以外的用户代理,可以使用 setUserAgent
和 setHttpHeaders
方法
$agent->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'); $agent->setHttpHeaders($headers);
所有原始的 Mobile Detect 方法仍然可用,请查看一些原始示例 https://github.com/serbanghita/Mobile-Detect/wiki/Code-examples
是?
检查用户代理中的某个属性。
$agent->is('Windows'); $agent->is('Firefox'); $agent->is('iPhone'); $agent->is('OS X');
魔法 is 方法
与之前的 is()
方法执行相同的魔法方法
$agent->isAndroidOS(); $agent->isNexus(); $agent->isSafari();
移动检测
检查移动设备
$agent->isMobile(); $agent->isTablet();
匹配用户代理
使用正则表达式搜索用户代理
$agent->match('regexp');
额外功能
接受语言
获取浏览器的接受语言。示例
$languages = $agent->languages(); // ['nl-nl', 'nl', 'en-us', 'en']
设备名称
获取设备名称,如果是移动设备。(iPhone,Nexus,AsusTablet,...)
$device = $agent->device();
操作系统名称
获取操作系统。(Ubuntu,Windows,OS X,...)
$platform = $agent->platform();
浏览器名称
获取浏览器名称。(Chrome,IE,Safari,Firefox,...)
$browser = $agent->browser();
桌面检测
检查用户是否使用桌面设备。
$agent->isDesktop();
这检查用户是否不是移动设备、平板电脑或机器人。
手机检测
检查用户是否使用手机设备。
$agent->isPhone();
机器人检测
检查用户是否是机器人。这使用 jaybizzle/crawler-detect 进行实际的机器人检测。
$agent->isRobot();
机器人名称
获取机器人名称。
$robot = $agent->robot();
浏览器/平台版本
MobileDetect 最近添加了 version
方法,可以获取组件的版本号。要获取浏览器或平台版本,可以使用
$browser = $agent->browser(); $version = $agent->version($browser); $platform = $agent->platform(); $version = $agent->version($platform);
注意,版本方法仍在测试中,因此可能不会返回正确的结果。
支持开发者
🙋♂️ 您好,我是开发者 Phat Chai,是一名 Full Stack Web Developer,我为自己的项目创建了 package,并在项目中频繁使用。如果您有任何建议或想法,想为 PHP / Laravel / NodeJS / Python 或其他语言创建 package,请随时告诉我。
line: phat-chai
💻 如果您有有趣的项目,需要团队合作,或需要经验丰富的程序员帮助解决难题,请随时联系我。我很乐意提供帮助,并共同创造优秀的作品。
📄 您可以在 https://Luscalopez.dev 查看我的历史和作品。

许可
Laravel User Agent 根据 MIT 许可证(MIT) 许可。