0

我正在制作一个用于监控 Linux 服务器的 php 网站,所以我使用 linux 命令来进行内存使用,例如(免费)和(cat /proc/meminfo),用于磁盘存储、网络、用户等......我可以执行 Linux 命令使用 exec 和 shell_exec 和反引号等 php 命令...但是如何将输出存储在 php 数组中?以及如何将每个元素从数组移动到字符串或 int 变量以对其执行一些字符串或 int 函数?

我试试这个

    // get memort details into array !!! 
   $last_line = exec('cat /proc/meminfo', $retval);
   // this will return just the memory total
   echo $retval[1];
   echo "<br> <br>";
    // this will move the  memory total into variable
     $memory_total=$retval[0];
    echo "<br> <br> the memory total by variable is $memory_total <br><br> ";

    implode($memory_total);

     //this will give me the memory total in KB
   echo  substr($memory_total,9);
    echo "<br> <br>";

但我想在 int 变量中得到结果,如果有更好的方法呢?

4

1 回答 1

0

使用正则表达式,您的生活将变得轻松。

<?php

// Why cat in a shell to get info from one file? use the right/easy function!
$data = file_get_contents('/proc/meminfo');

// PCRE will save you in many cases!
preg_match_all("/^([^:]+):\s+([0-9]+)\s*([a-z]+)?$/Umi",$data,$meminfo,PREG_SET_ORDER);

// All you need is here
var_dump($meminfo);

你关于 int 和 string 的问题是一个常见的错误,谁没有阅读PHP 页面中关于类型的部分。我强烈建议您阅读基本部分手册,因为您的许多有关数据操作的问题都会得到解答。PHP 将根据使用的函数评估数据类型。

于 2013-05-18T17:18:56.667 回答