如何使用php-exec检查php-ping是否成功返回,我想用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';
}
}
我知道这个代码是错误的,但这正是我所需要的,如果你们中的任何人能给我一个如何做它的领先优势或建议,我将非常感激……谢谢!!
这应该做到:
if(exec('ping http://www.google.com')) {
echo 'True';
} else {
echo 'False';
}
我建议你可以使用CUrl
参见手册,但这一切都取决于你想要实现的目标。
如果需要,请提供更多数据。
注意
您需要在google.com之前使用http://
,因为这是制作ping
所必需的
它可能更快、更高效,只在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,因此您的方法不会在每个服务器设置上都起作用。