Php Exec - 系统RAM

时间:2011-05-08 14:26:45

标签: php exec ram

我已经搜索了几天,我知道需要做什么,但无法弄清楚确切的代码。我知道它必须使用preg_match才能让我得到我想要的东西,但我遇到了麻烦。

我正在尝试让脚本显示系统上使用了多少RAM。我正在使用php exec。我使用命令free -mt。在线,我确实找到了这个代码,我做了一些修改。

exec('free -mo', $out);
var_dump($out[1]);
list($mem, $used, $free, $shared, $buffers, $cached) = explode(" ", $out[1]);
echo "Memory: " .$used. "/" . $total;

如果我只想输出当前使用的RAM量,我该怎么办?

代码结束显示所有RAM,但我需要它才能显示RAM的总使用量。我从该代码获得的输出是:

string(73) "Mem: 768 162 605 0 0 0" Memory: /

我希望它只是说正在使用的RAM,因此,在这个确切的时刻应该会出现162,但每次刷新时都应该是真实的数据。

1 个答案:

答案 0 :(得分:3)

上述代码无效的原因是因为您在空间上爆炸,而值在您尝试获取的值之间包含许多空格。更好的做法是使用preg_match_all()。

请改为尝试:

exec('free -mo', $out);
preg_match_all('/\s+([0-9]+)/', $out[1], $matches);
list($total, $used, $free, $shared, $buffers, $cached) = $matches[1];
echo "Memory: " . $used . "/" . $total;