Yii2里自定义函数的保存位置和使用方法
以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;
}
}
其他位置的使用方法都一样,只是改一下命名空间
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。