【发布时间】:2011-11-07 03:03:32
【问题描述】:
使用 PHP,我想获取系统可用的总内存(不仅仅是可用内存或已用内存)。
在 Linux 上这很简单。你可以这样做:
$memory = fopen('/proc/meminfo');
然后解析文件。
有人知道 Windows 的等效方法吗?我愿意接受任何建议。
编辑:我们有一个解决方案(但 StackOverflow 不允许我回答我自己的问题):
exec( 'systeminfo', $output );
foreach ( $output as $value ) {
if ( preg_match( '|Total Physical Memory\:([^$]+)|', $value, $m ) ) {
$memory = trim( $m[1] );
}
不是最优雅的解决方案,而且速度很慢,但它适合我的需要。
【问题讨论】:
-
旁注:PHP 有一个内置的内存限制,因此机器的 RAM 大小不一定是您的脚本可用的 RAM(除非您禁用内存限制)
-
systeminfo 太慢了——如果脚本有用户交互可能不是一个好主意