Я пишу PHP script, который будет использоваться для проверки сетевых подключений с командной оболочкой Linux ping
, вызывающей его с помощью 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;
?>
Я не получаю вывод для сообщения об ошибке из ping в $output
, что я ожидаю:
$ php try.php
ping: unknown host lksjdflksjdf.com
int(2)
return_var is: 2
array(0) {
}
Если домен является хорошим доменом, например yahoo.com, то $output
имеет выход из ping в массиве. Но если это ошибка, например 'ping: unknown host lksjdflksjdf.com'
, она не возвращается в массив $output
.
Почему это происходит, и есть ли лучший способ сделать это?