如何在php中检查cmd ping是否成功

时间:2013-08-26 17:20:13

标签: php

如何检查php ping是否使用php exec返回成功或失败,我想到了一些while循环,但我不确定是否是最好的方法,我试过:

exec('ping www.google.com', $output)

但我必须做一个var_dump($ output);为了查看结果,我想为ping命令返回的每一行检查它

$i = 2;
while(exec('ping www.google.com', $output)) {
  if($output) {
     echo 'True';
  } else {
     echo 'False';
  }
}

我知道这段代码错了,但是我需要的是什么,如果你们中的任何人能够给我一个如何做的先机或建议我会非常感激....谢谢!!

2 个答案:

答案 0 :(得分:3)

这应该这样做:

if(exec('ping http://www.google.com')) {
 echo 'True';
} else {
 echo 'False';
}

我建议您使用CUrl See Manual,但这完全取决于您要实现的目标。

如果需要,提供更多数据。

注意

您需要在google.com之前使用http://,以便制作ping

答案 1 :(得分:0)

它可能更快,更高效,只需在PHP中执行,而不是执行shell

$host = '1.2.3.4'; 
$port = 80; 
$waitTimeoutInSeconds = 1; 
if($fp = fsockopen($host,$port,$errCode,$errStr,$waitTimeoutInSeconds)){   
   // It worked 
} else {
   // It didn't work 
} 
fclose($fp);

出于安全原因,某些服务器也会禁用EXEC,因此您的方法不适用于每个服务器设置。