我正在寫一個PHP腳本來檢查與Linux shell命令ping
網絡連接與PHP的exec()
稱之爲:PHP:爲什麼不是exec()返回輸出?
<?php
// Bad IP domain for testing.
$domain_bad = "lksjdflksjdf.com";
$ip_address = $domain_bad;
exec("ping -c 1 $domain_bad", $output, $return_var);
var_dump($return_var);
echo "return_var is: $return_var" . "\n";
var_dump($output);
exit;
?>
我沒有收到來自中國平安在$output
錯誤消息輸出這就是我期待:
$ php try.php
ping: unknown host lksjdflksjdf.com
int(2)
return_var is: 2
array(0) {
}
如果域是一個好域名,如yahoo.com,然後$output
有平安在陣列的輸出。但是,如果這是一個錯誤,例如'ping: unknown host lksjdflksjdf.com'
它不會返回到$output
陣列。
爲什麼會發生這種情況,是否有更好的方法來做到這一點?
就是這樣!我忽略了這一點。它的工作,謝謝! – Edward
只要它讓我! :-) – Edward
add 2>&1但輸出仍然是數組空,如果從cmd執行,它輸出2個值 –