首页 > php框架 > LINUX 系统参数探测包括cpu,时间,内存等

LINUX 系统参数探测包括cpu,时间,内存等

这款linux系统参数探测函数,可以计算出你当前机器的cpu是多少,内存多使用了多少,运行时间以及更新时间

LINUX 系统参数探测包括cpu,时间,内存等

    function sys_linux()
    {
        // CPU
        if (false === ($str = @file("/proc/cpuinfo"))) return false;
        $str = implode("", $str);
        @preg_match_all("/models+names{0,}:+s{0,}([ws)(.]+)[rn]+/", $str, $model);
        //@preg_match_all("/cpus+MHzs{0,}:+s{0,}([d.]+)[rn]+/", $str, $mhz);
        @preg_match_all("/caches+sizes{0,}:+s{0,}([d.]+s{0,}[A-Z]+[rn]+)/", $str, $cache);
        if (false !== is_array($model[1]))
            {
            $res[cpu][num] = sizeof($model[1]);
            for($i = 0; $i < $res[cpu][num]; $i++)
            {
                $res[cpu][detail][] = "类型:".$model[1][$i]." 缓存:".$cache[1][$i];
            }
            if (false !== is_array($res[cpu][detail])) $res[cpu][detail] = implode("<br />", $res[cpu][detail]);
            }
        
        
        // UPTIME
        if (false === ($str = @file("/proc/uptime"))) return false;
        $str = explode(" ", implode("", $str));
        $str = trim($str[0]);
        $min = $str / 60;
        $hours = $min / 60;
        $days = floor($hours / 24);
        $hours = floor($hours - ($days * 24));
        $min = floor($min - ($days * 60 * 24) - ($hours * 60));
        if ($days !== 0) $res[uptime] = $days."天";
        if ($hours !== 0) $res[uptime] .= $hours."小时";
        $res[uptime] .= $min."分钟";
        
        // MEMORY
        if (false === ($str = @file("/proc/meminfo"))) return false;
        $str = implode("", $str);
        preg_match_all("/MemTotals{0,}:+s{0,}([d.]+).+?MemFrees{0,}:+s{0,}([d.]+).+?SwapTotals{0,}:+s{0,}([d.]+).+?SwapFrees{0,}:+s{0,}([d.]+)/s", $str, $buf);
        
        $res[memTotal] = round($buf[1][0]/1024, 2);
        $res[memFree] = round($buf[2][0]/1024, 2);
        $res[memUsed] = ($res[memTotal]-$res[memFree]);
        $res[memPercent] = (floatval($res[memTotal])!=0)?round($res[memUsed]/$res[memTotal]*100,2):0;
        
        $res[swapTotal] = round($buf[3][0]/1024, 2);
        $res[swapFree] = round($buf[4][0]/1024, 2);
        $res[swapUsed] = ($res[swapTotal]-$res[swapFree]);
        $res[swapPercent] = (floatval($res[swapTotal])!=0)?round($res[swapUsed]/$res[swapTotal]*100,2):0;
        
        // LOAD AVG
        if (false === ($str = @file("/proc/loadavg"))) return false;
        $str = explode(" ", implode("", $str));
        $str = array_chunk($str, 3);
        $res[loadAvg] = implode(" ", $str[0]);
        
        return $res;
    }
//调用方法
sys_linux();
/*
 这款linux系统参数探测函数,可以计算出你当前机器的cpu是多少,内存多使用了多少,运行时间以及更新时间
*/


本文地址:http://www.phprm.com/frame/php1005036.html

转载随意,但请附上文章地址:-)

标签:none

发表留言