是否可以运行两个命令并在同一页面上处理两个输出

时间:2011-07-17 02:03:32

标签: php linux

我在php中使用popen()运行两个linux命令。如果我运行1,我可以收集输出并处理它。如果我在使用2>& 1漏斗到页面的同时同时运行两个,则输出会混乱。是否可以运行两个命令并在同一页面上处理两个输出?

我基本上复制了每个命令的底码

$handle = popen ("-some long command 2>&1");

while (false !== ($char = fgetc($handle)))
{
  if ($char == "\r")
  {
    // You could now parse the $line for status information.
$line= "$line\n";
if (preg_match("/Duration: (.*?),/", $line, $matches)){
//do stuff

}

$line = "";
} else {
$line .= $char;
}
ob_flush();
flush();
}
pclose ($handle);
}

1 个答案:

答案 0 :(得分:2)

proc_open允许执行多个异步命令;您将通过 stdout 管道获得输出。

PS:永远不会重复代码;改用函数!