【问题标题】:functions outside of loop not updating循环外的函数不更新
【发布时间】:2013-01-31 02:30:15
【问题描述】:

我正在尝试做一个循环,根据平均负载和 CPU/内存等显示一些条件。但是,它似乎只为整个循环提取一次使用信息。我希望它在每个循环中更新它:这就是我得到的,非常感谢任何形式的帮助!

<?php

exec("cat /proc/cpuinfo | grep processor | wc -l",$processors);
$totalc=$processors[0];

function sys_getloadavg_hack()
{
    $str = substr(strrchr(shell_exec("uptime"),":"),1);
    $avs = array_map("trim",explode(",",$str));

    return $avs;
}

$load = sys_getloadavg_hack();

  function get_memory() {
  foreach(file('/proc/meminfo') as $ri)
    $m[strtok($ri, ':')] = strtok('');
  return 100 - round(($m['MemFree'] + $m['Buffers'] + $m['Cached']) / $m['MemTotal'] * 100);
}

function print_exec(){
$out_arr=array();
$last_line=exec("mpstat",$out_arr);
return $last_line;
}

   for ($i=1; $i<=50; $i++)
  {

$memory = get_memory(); 

$cpu = substr(print_exec(),-5);

if($memory>"10" && $cpu>"10" && $load[0]<$totalc) {

echo "Everything is good!";

    } else {

}
    echo "Memory: $memory || CPU: $cpu || Load AVG: $load[0] || #CPU's: $totalc<br> || #Runtime: $i\n\n"; 
    usleep(800000);
}
    ?>

【问题讨论】:

    标签: php function loops while-loop


    【解决方案1】:

    您必须在每个循环中进行所有计算。 例如:您在循环之前只调用一次 sys_getloadavg_hack()

    尝试在 for 循环中添加 sys_getloadavg_hack() 调用。

    for(...)
    {
        $load = sys_getloadavg_hack();
        ...
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-14
      • 1970-01-01
      • 1970-01-01
      • 2015-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多