我正在研究一些代码来循环输出一些代码,我的脚本似乎没有等待,任何能够识别我的问题的人都可以。
#!/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
。
我该如何更改我的代码?
答案 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;
}
}