Centos 6.2 - Apache 2 - PHP 5 - Выполнение пустого результата - PullRequest
1 голос
/ 01 марта 2012

У меня есть одна проблема при выполнении ping на PHP, я получил пустой результат, но если я выполню другую команду, например, whoami, я получу правильный результат. Не могли бы вы помочь мне, пожалуйста?любая идея?

<?php
exec('ping google.com', $output);
echo $output;
//Result: 
?>

<?php
exec('whoami', $output);
echo $output;
//Result: apache
?>

Спасибо

Примечание: Может быть, некоторые из конфигурации Apache?или php config?или разрешение linux?

Ответы [ 3 ]

1 голос
/ 01 марта 2012

Я предполагаю, что по умолчанию поведение пинга никогда не останавливается.Он продолжает работать до тех пор, пока вы его не уничтожите.

man ping говорит: «-c count Stop после отправки пакетов count ECHO_REQUEST. С параметром deadline ping ожидает подсчета пакетов ECHO_REPLY до истечения времени ожидания."

Попробуйте добавить параметры, чтобы ограничить время выполнения пингов и посмотреть, получите ли вы результат.

0 голосов
/ 01 марта 2012

Вы также можете попробовать это

<code><?php
$output = shell_exec('ping google.com');
echo "<pre>$output
"; ?>
0 голосов
/ 01 марта 2012

Попробуйте этот код.

<?php
function GetPing($ip=NULL) {
 if(empty($ip)) {$ip = $_SERVER['REMOTE_ADDR'];}
 if(getenv("OS")=="Windows_NT") {
  $exec = exec("ping -n 3 -l 64 ".$ip);
  return end(explode(" ", $exec ));
 }
 else {
  $exec = exec("ping -c 3 -s 64 -t 64 ".$ip);
  $array = explode("/", end(explode("=", $exec )) );
  return ceil($array[1]) . 'ms';
 }
}

echo GetPing();
?>
...