workman服务端开发模式-应用开发-后端api登录之浏览器版本工具开发

一、浏览器版本工具开发

在根目录下extend文件夹下Other文件夹下创建浏览器控制工具并命名为Browser.php,代码如下:

复制代码
<?php
/**
 * 浏览器管理
 * User: 龙哥 三年风水
 * Date: 2024/12/21/0021
 * Time: 21:58
 */
namespace Other;
class Browser
{

    /**
     * 获取浏览器及版本
     * @ return string
     */

    public static function getVersion(){
        $userAgent = $_SERVER['HTTP_USER_AGENT'];
        $browser = 'unknown';
        $version = 0;
        if (preg_match('/MSIE (\d+[\.\d]+)/i', $userAgent, $matches)) {
            $browser = 'ie';
            $version = (float)$matches[1];
        } elseif (preg_match('/Firefox\/(\d+[\.\d]+)/i', $userAgent, $matches)) {
            $browser = 'firefox';
            $version = (float)$matches[1];
        } elseif (preg_match('/Chrome\/(\d+[\.\d]+)/i', $userAgent, $matches)) {
            $browser = 'chrome';
            $version = (float)$matches[1];
        } elseif (preg_match('/Safari\/(\d+[\.\d]+)/i', $userAgent, $matches) && preg_match('/Version\/(\d+[\.\d]+)/i', $userAgent, $matches2)) {
            $browser = 'safari';
            $version = (float)$matches2[1];
        } elseif (preg_match('/Opera[\s\/](\d+[\.\d]+)/i', $userAgent, $matches)) {
            $browser = 'opera';
            $version = (float)$matches[1];
        } elseif (preg_match('/OPR\/([^\s]+)/', $userAgent, $matches)) {
            $browser = 'opera';
            $version = (float)$matches[1];
        }
        return $browser.$version;
    }
}

二、测试浏览器版本工具

1、添加路由

在根目录下route文件夹下app.php文件中追加如下代码:

复制代码
Route::get('index/index','Index/index');// 测试使用

2、代码调用测试

在根目录下app文件夹下controller文件夹下修改Index.php,代码如下:

复制代码
<?php
namespace app\controller;
use Other\Browser;

class Index extends Emptys
{
    public function index()
    {
        $browser = Browser::getVersion();
        var_dump($browser);exit;
    }
}
相关推荐
星光一影15 分钟前
美容/心理咨询/问诊/法律咨询/牙医预约/线上线下预约/牙医行业通用医疗预约咨询小程序
mysql·小程序·vue·php·uniapp
acrelgxy35 分钟前
告别盲测,预见温度:安科瑞如何用无线技术革新变电站安全
分布式·安全·电力监控系统·智能电力仪表
Wang's Blog1 小时前
RabbitMQ: 全面安装与运维指南之从基础部署到高级配置
运维·分布式·rabbitmq
回家路上绕了弯1 小时前
代码的三大核心素养:如何同时兼顾可维护性、可扩展性、可测试性
分布式·后端
Query*1 小时前
分布式消息队列kafka【二】—— 基础概念介绍和快速入门
分布式·kafka
清水白石0082 小时前
《Python 分布式锁全景解析:从基础原理到实战最佳实践》
开发语言·分布式·python
lang201509282 小时前
Kafka日志迁移与查询机制解析
分布式·kafka·linq
jllllyuz2 小时前
基于遗传算法的33节点配电网网络重构MATLAB实现
matlab·重构·php
像风一样自由20202 小时前
Ray 分布式训练的多智能体路径规划强化学习踩坑记录
分布式
lang201509282 小时前
Kafka副本管理核心机制全解析
分布式·kafka·linq