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;
    }
}
相关推荐
霸道流氓气质9 小时前
分布式系统设计:技术解析与实践
分布式
那年窗外下的雪.11 小时前
AIDC 学习日志 第 04 天 BGP Underlay 基础与路由选择
服务器·学习·php
ACP广源盛1392462567311 小时前
蚂蚁百灵 Ling‑3.0‑flash 开源 + 昇腾 0‑Day 原生适配@ACP#GSV9001E 在国产算力矩阵中的机会与落地场景
大数据·人工智能·分布式·单片机·嵌入式硬件
COOLMO研究AI12 小时前
Python 如何在 AI 接口中实现请求幂等性:防止重复提交与重复扣费
人工智能·python·php
西安景驰电子13 小时前
《PTP精确时间协议系列》第一篇:从原理到应用,全面解读IEEE 1588
linux·运维·服务器·开发语言·网络·windows·php
wavemap15 小时前
HyperPHP 免费主机无限流量
服务器·php
汽车仪器仪表相关领域15 小时前
KRYPTON坚固型IP67 EtherCAT总线数据采集模块:工业级分布式采集方案
分布式·功能测试·汽车·压力测试·可用性测试
长江&后浪16 小时前
防火墙的描述
开发语言·网络·php
三84417 小时前
文件包含基础
php
霸道流氓气质17 小时前
Java中信号量(Semaphore):从本地到分布式
java·开发语言·分布式