我正在制作一个用于监控Linux服务器的php网站,所以我使用linux命令进行内存使用,如(免费)& (cat / proc / meminfo),用于磁盘存储,网络,用户等...我可以用exec,shell_exec和back-tick等php命令执行Linux命令......但是如何在php数组中存储输出?以及如何将每个元素从数组移动到string或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变量的结果,如果有更好的方法呢?
答案 0 :(得分:0)
Regular Expressions让您的生活变得轻松。
<?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的问题是一个常见错误,因为谁没有阅读about types in PHP page部分。我强烈建议您阅读基本的部分手册,因为您将回答有关数据操作的许多问题。 PHP将根据使用的函数评估数据类型。