使用PHP执行后台系统命令并捕获数组中的输出
我正在尝试使用PHP/HTML ping一组IP使用PHP执行后台系统命令并捕获数组中的输出,php,Php,我正在尝试使用PHP/HTML ping一组IP <?php $ip=array("192.10.1.1","192.10.1.2","192.10.1.3","192.10.1.4","192.10.1.5") $list=count($ip); $instruction = ""; for ($x=0; $x<$list; $x++) { if ($x > 0) { $send2_bg =" & "; } else {
<?php
$ip=array("192.10.1.1","192.10.1.2","192.10.1.3","192.10.1.4","192.10.1.5")
$list=count($ip);
$instruction = "";
for ($x=0; $x<$list; $x++)
{
if ($x > 0)
{
$send2_bg =" & ";
}
else
{
$send2_bg = "";
}
$instruction = $instruction.$send2_bg."ping -c 2 -w 1 ". $ip[$x]." | grep -i received | awk '{print $4}'" ;
}
echo $instruction;
$result =exec($instruction);
?>
但是我没有得到输出,指令构造得很好,但是在exec()之后,输出就不是我所期望的了。exec()
只是返回输出的最后一行
shell\u exec()
返回所有输出exec()
只返回输出的最后一行
shell\u exec()
返回所有输出尝试如下捕获输出:
exec($command, $host, $output);
print_r($output);
尝试按如下方式捕获输出:
exec($command, $host, $output);
print_r($output);
问题是您正在回显指令var,请查看该链接-
请参考参数输出,并回显该参数,而不是指令变量。问题是您回显的是指令变量。请查看该链接-
请参考参数输出并回显该参数,而不是指令变量。您不能使用HTML进行ping。@hjpotter92他在php中使用的exec可以ping。我调用php不仅仅是HTMLYou不能使用HTML进行ping。@hjpotter92他在php中使用的exec可以ping。我调用的php不仅仅是HTMLYes,它可以。但您只获得输出的最后一行。您可以通过使用shell_exec()或提供额外的$output变量来获得所有这些。您说得对,Joel,谢谢。我已经相应地编辑了我的答案。谢谢Alex。我使用shell_exec()获得了预期的输出。是的,确实如此。但您只获得输出的最后一行。您可以通过使用shell_exec()或提供额外的$output变量来获得所有这些。您说得对,Joel,谢谢。我已经相应地编辑了我的答案。谢谢Alex。我使用shell_exec()获得了预期的输出