发新话题
打印

获取操作系统

获取操作系统

复制内容到剪贴板
代码:
<?php
/*
* Yusi System for PHP5 Ver.1.0.2
* (C) Copyright 2006 Eyusi.com!
*  Author: Enze   enzewei@gmail.com
* $Id: Function.Inc  2006/12/19 09:06 $
*/

/**
* ***************
* 获取操作系统
* @return string
*/
function getOS()
{        
        $os="";
        $Agent = $_SERVER["HTTP_USER_AGENT"];
        if (eregi('win',$Agent) && strpos($Agent, '95')) {
                $os="Windows 95";
        }
        elseif (eregi('win 9x',$Agent) && strpos($Agent, '4.90')) {
                $os="Windows ME";
        }
        elseif (eregi('win',$Agent) && eregi('98',$Agent)) {
                $os="Windows 98";
        }
        elseif (eregi('win',$Agent) && eregi('nt 5\.0',$Agent)) {
                $os="Windows 2000";
        }
        elseif (eregi('win',$Agent) && eregi('nt 5\.1',$Agent)) {
                $os="Windows XP";
        }
        elseif (eregi('win',$Agent) && eregi('nt',$Agent)) {
                $os="Windows NT";
        }
        elseif (eregi('win',$Agent) && eregi('32',$Agent)) {
                $os="Windows 32";
        }
        elseif (eregi('linux',$Agent)) {
                $os="Linux";
        }
        elseif (eregi('unix',$Agent)) {
                $os="Unix";
        }
        elseif (eregi('sun',$Agent) && eregi('os',$Agent)) {
                $os="SunOS";
        }
        elseif (eregi('ibm',$Agent) && eregi('os',$Agent)) {
                $os="IBM OS/2";
        }
        elseif (eregi('Mac',$Agent) && eregi('PC',$Agent)) {
                $os="Macintosh";
        }
        elseif (eregi('PowerPC',$Agent)) {
                $os="PowerPC";
        }
        elseif (eregi('AIX',$Agent)) {
                $os="AIX";
        }
        elseif (eregi('HPUX',$Agent)) {
                $os="HPUX";
        }
        elseif (eregi('NetBSD',$Agent)) {
                $os="NetBSD";
        }
        elseif (eregi('BSD',$Agent)) {
                $os="BSD";
        }
        elseif (eregi('OSF1',$Agent)) {
                $os="OSF1";
        }
        elseif (eregi('IRIX',$Agent)) {
                $os="IRIX";
        }
        elseif (eregi('FreeBSD',$Agent)) {
                $os="FreeBSD";
        }
        if ($os=='') $os = "未知操作系统";
        return $os;
}
?>
广告位招租。

TOP

果然是高手啊,大家的问题接着提啊

TOP

这代码应该可以优化一下,elseif 太多了,不如用 选择条件case。这样明目思清。。。写得不错了。。。

TOP

可以提供楼主一个思路,先定义一个包含操作系统名称的数组,然后直接返回以得到的系统名称为键值的的值

例如:
复制内容到剪贴板
代码:
$os = array  (
        'winnt' => 'Windows NT',
       'Linux' => 'Linux System'
);
键值为一个系统的唯一字符串,可以是拼接出来的
然后取得当前系统唯一的标识字符串,直接返回值

TOP

懒的去改这个,用的不是很多。等有时间再去优化吧。哈哈~

表BS我。
广告位招租。

TOP

发新话题