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;
    }
}
相关推荐
武子康2 小时前
Seedream 5.0 Pro 进入 Vercel AI Gateway:图像生成开始网关化
人工智能·ai·chatgpt·gateway·agent·claude·harness
Forerror20263 小时前
API网关怎么部署?MAI Gateway配置教程与最佳实践
人工智能·gateway·maigateway·finapi·企业级ai网关·大模型财务管控
Raas1003 小时前
AI网关和LLM网关区别?MAI Gateway(魔芋企业级AI网关)企业级方案对比指南
大数据·人工智能·gateway·mai gateway·企业级产品
JJJennie7774 小时前
大模型网关支持DeepSeek吗?MAI Gateway实战能力深度解读
gateway
数智启示录5 小时前
Apache Kafka Consumer 扩到 40 个仍不提速:Partition 上限锁死有效并行度 【Kafka合集】
数据库·经验分享·分布式·缓存·面试·kafka·apache
FfHUCisI5 小时前
GMP 调度器:Go 并发的心脏是如何跳动的
开发语言·golang·php
数智启示录5 小时前
Apache Kafka 幂等 Producer 的边界:Exactly-Once 到了 MySQL 为什么失效 【Kafka合集】
数据库·经验分享·分布式·mysql·面试·kafka·apache
数智启示录6 小时前
Apache Kafka 不只是消息队列:日志与 Offset 分离如何让事件可重放 【Kafka合集】
经验分享·分布式·面试·kafka·apache
数智启示录6 小时前
Apache Kafka 同 Key 仍会乱序:从分区 Offset 到业务可见的四道边界 【Kafka 合集】
大数据·数据库·经验分享·分布式·面试·kafka·apache
BYSJMG6 小时前
大数据毕业设计选题推荐:基于大数据的全球气温历史演变分析与可视化,用Hadoop+Spark处理
大数据·hadoop·分布式·信息可视化·spark·kmeans·课程设计