循环通过爆炸文件php错误

时间:2017-08-30 09:13:45

标签: php

我正在研究一些代码来循环输出一些代码,我的脚本似乎没有等待,任何能够识别我的问题的人都可以。

#!/usr/bin/php -q

exec("string_of_bash_commands", $in);

   foreach($in as $line) {
    $line = explode(' ', $line);
    if($line[0] > 1000) {
        echo "Critical: $line[1] has $line[0]";
             exit;  
    }

}
echo "OK";

$ in,接收如下数据:

5 192.168.0.2
4 192.168.0.3
3 192.168.0.4
11428 192.168.0.5
10 192.168.0.7

我想打印超过1000的那些,例如192.168.0.5,或者如果全部都低于1000,则只打印OK
我该如何更改我的代码?

1 个答案:

答案 0 :(得分:0)

// It is good practice to define some settings at the top of your code:
define('WARNING_THRESHOLD', 1000); // Place this up top in your code

$lines = explode("\n", $in);
foreach($lines as $line_number=>$line) {
    list($number, $ip) = explode(' ', $line);
    echo $ip.' '.$number.' ';
    echo $number >= WARNING_THRESHOLD ? 'WARNING' : 'OK';
}
  

192.168.0.2 5 OK
  192.168.0.3 4 OK
  192.168.0.4 3 OK
  192.168.0.5 11428警告
  192.168.0.7 10确定

或者,如果您希望它们位于单独的数组中:

define('WARNING_THRESHOLD', 1000); // Place this up top in your code

$lines = explode("\n", $in);
foreach($lines as $line_number=>$line) {
    list($number, $ip) = explode(' ', $line);
    if( $line[0] >= WARNING_THRESHOLD ){
        $ipsGood[] = $ip;
    } else{
        $ipsBad[] = $ip;
    }
}