If you know this code will only be running under Linux, you can use the special /proc/meminfo
file to get information about the system's virtual memory subsystem. The file has a form like this:
MemTotal: 255908 kB
MemFree: 69936 kB
Buffers: 15812 kB
Cached: 115124 kB
SwapCached: 0 kB
Active: 92700 kB
Inactive: 63792 kB
...
That first line, MemTotal: ...
, contains the amount of physical RAM in the machine, minus the space reserved by the kernel for its own use. It's the best way I know of to get a simple report of the usable memory on a Linux system. You should be able to extract it via something like the following code:
<?php $fh = fopen('/proc/meminfo.txt');
$mem = 0;
while ($line = fgets($fh)) {
$pieces = array();
if ($preg_match('^MemTotal:\s+(\d+)\skB$', $line, &$pieces) {
$mem = $pieces[1];
break;
}
}
echo "$mem kB RAM found"; ?>
(Please note: this code may require some tweaking for your environment.)