function sys_memory () { $proc_meminfo = file("/proc/meminfo"); // gather system memory information for ($i = 0; $proc_meminfo[$i] != NULL; $i++) { if (ereg("Mem:", $proc_meminfo[$i])) { $clean = ereg_replace (' +', ' ', $proc_meminfo[$i]); // compact whitespace $mem = explode (" ", $clean); } if (ereg("Swap:", $proc_meminfo[$i])) { $clean = ereg_replace (' +', ' ', $proc_meminfo[$i]); // compact whitespace $swap = explode (" ", $clean); } } // create the data structure // 1 = total, 2 = used, 3 = free, 4 = shared, 5 = buffers, 6 = cached $memory["mem_total"] = convert_bytes($mem[1]); $memory["mem_used"] = convert_bytes($mem[2] - $mem[5] - $mem[6]); $memory["mem_free"] = convert_bytes($mem[1] - ($mem[2] - $mem[5] - $mem[6])); $memory["mem_used_p"] = round((($mem[2] - $mem[5] - $mem[6]) / $mem[1]) * 100, 2); $memory["mem_free_p"] = round(($mem[1] - ($mem[2] - $mem[5] - $mem[6])) / $mem[1] * 100, 2); $memory["swap_total"] = convert_bytes($swap[1]); $memory["swap_used"] = convert_bytes($swap[2]); $memory["swap_free"] = convert_bytes($swap[3]); $memory["swap_used_p"] = round(($swap[2] / $swap[1]) * 100, 2); $memory["swap_free_p"] = round(($swap[3] / $swap[1]) * 100, 2); // return the data structure return $memory; }