牛骨文教育服务平台(让学习变的简单)
博文笔记

Yii2里自定义函数的保存位置和使用方法

创建时间:2016-09-27 投稿人: 浏览次数:231

advanced 版本为例。假如要在frontend 里放一个获取用户操作系统的函数get_os

frontend下新建一个目录helpers,新建文件CustomFun.php

命名空间一定要写好:namespace frontendhelpers;

然后就可以愉快的写自定义函数(建议函数都用静态的)了

使用的时候只需要引入进来就行use frontendhelpersCustomFun,使用方法跟其他yii的一样。

<?php

namespace frontendhelpers;

class CustomFun
{
    /**
     * 获取客户端操作系统信息包括win10
     * @return string
     */
    public static function get_os(){
    $agent = $_SERVER["HTTP_USER_AGENT"];
    $os = false;

    if (preg_match("/win/i", $agent) && strpos($agent, "95"))
    {
      $os = "Windows 95";
    }
    else if (preg_match("/win 9x/i", $agent) && strpos($agent, "4.90"))
    {
      $os = "Windows ME";
    }
    else if (preg_match("/win/i", $agent) && preg_match("/98/i", $agent))
    {
      $os = "Windows 98";
    }
    else if (preg_match("/win/i", $agent) && preg_match("/nt 6.0/i", $agent))
    {
      $os = "Windows Vista";
    }
    else if (preg_match("/win/i", $agent) && preg_match("/nt 6.1/i", $agent))
    {
      $os = "Windows 7";
    }
      else if (preg_match("/win/i", $agent) && preg_match("/nt 6.2/i", $agent))
    {
      $os = "Windows 8";
    }else if(preg_match("/win/i", $agent) && preg_match("/nt 10.0/i", $agent))
    {
      $os = "Windows 10";#添加win10判断
    }else if (preg_match("/win/i", $agent) && preg_match("/nt 5.1/i", $agent))
    {
      $os = "Windows XP";
    }
    else if (preg_match("/win/i", $agent) && preg_match("/nt 5/i", $agent))
    {
      $os = "Windows 2000";
    }
    else if (preg_match("/win/i", $agent) && preg_match("/nt/i", $agent))
    {
      $os = "Windows NT";
    }
    else if (preg_match("/win/i", $agent) && preg_match("/32/i", $agent))
    {
      $os = "Windows 32";
    }
    else if (preg_match("/linux/i", $agent) && preg_match("/Android/i", $agent))
    {
      $os = "Android";
    }
    else if (preg_match("/unix/i", $agent))
    {
      $os = "Unix";
    }
    else if (preg_match("/sun/i", $agent) && preg_match("/os/i", $agent))
    {
      $os = "SunOS";
    }
    else if (preg_match("/ibm/i", $agent) && preg_match("/os/i", $agent))
    {
      $os = "IBM OS/2";
    }
    else if (preg_match("/Mac/i", $agent) && preg_match("/PC/i", $agent))
    {
      $os = "Macintosh";
    }
    else if (preg_match("/PowerPC/i", $agent))
    {
      $os = "PowerPC";
    }
    else if (preg_match("/AIX/i", $agent))
    {
      $os = "AIX";
    }
    else if (preg_match("/HPUX/i", $agent))
    {
      $os = "HPUX";
    }
    else if (preg_match("/NetBSD/i", $agent))
    {
      $os = "NetBSD";
    }
    else if (preg_match("/BSD/i", $agent))
    {
      $os = "BSD";
    }
    else if (preg_match("/OSF1/i", $agent))
    {
      $os = "OSF1";
    }
    else if (preg_match("/IRIX/i", $agent))
    {
      $os = "IRIX";
    }
    else if (preg_match("/FreeBSD/i", $agent))
    {
      $os = "FreeBSD";
    }
    else if (preg_match("/teleport/i", $agent))
    {
      $os = "teleport";
    }
    else if (preg_match("/flashget/i", $agent))
    {
      $os = "flashget";
    }
    else if (preg_match("/webzip/i", $agent))
    {
      $os = "webzip";
    }
    else if (preg_match("/offline/i", $agent))
    {
      $os = "offline";
    }
    else
    {
      $os = "其他操作系统";
    }
    return $os;
}
}

其他位置的使用方法都一样,只是改一下命名空间

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。