【www.gdgbn.com--linux】

    function sys_linux()
    {
        // CPU
        if (false === ($str = @file("/proc/cpuinfo"))) return false;
        $str = implode("", $str);
        @preg_match_all("/models+names{0,}:+s{0,}([ws)(.]+)[ ]+/", $str, $model);
        //@preg_match_all("/cpus+MHzs{0,}:+s{0,}([d.]+)[ ]+/", $str, $mhz);
        @preg_match_all("/caches+sizes{0,}:+s{0,}([d.]+s{0,}[A-Z]+[ ]+)/", $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("
", $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();

本文来源:http://www.gdgbn.com/caozuoxitong/24800/