1

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

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';
  }
}

我知道这段代码是错误的,但它是我所需要的,如果你们中的任何一个人能给我一个关于如何做的开始或建议,我将非常感激......谢谢!

4

2 回答 2

3

这应该这样做:

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

我建议您可以使用CUrl See Manual但这一切都取决于您要达到的目标。

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

笔记

您将http://在 google.com 之前使用,因为这是制作ping.

于 2013-08-26T17:22:06.697 回答
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,因此您的方法不适用于每个服务器设置。

于 2013-08-26T17:33:55.220 回答