在PHP中使用实时输出运行过程

我试图在网页上运行一个进程,该进程将实时返回其输出。例如,如果我运行“

ping”进程,则它应在每次返回新行时更新页面(现在,当我使用exec(command,output)时,我被迫使用-

c选项,等到进程完成后才能看到在我的网页上输出)。是否可以在php中做到这一点?

我也想知道当有人离开页面时杀死这种过程的正确方法是什么。在“ ping”进程的情况下,我仍然可以在系统监视器中看到正在运行的进程(有意义)。

回答:

这为我工作:

$cmd = "ping 127.0.0.1";

$descriptorspec = array(

0 => array("pipe", "r"), // stdin is a pipe that the child will read from

1 => array("pipe", "w"), // stdout is a pipe that the child will write to

2 => array("pipe", "w") // stderr is a pipe that the child will write to

);

flush();

$process = proc_open($cmd, $descriptorspec, $pipes, realpath('./'), array());

echo "<pre>";

if (is_resource($process)) {

while ($s = fgets($pipes[1])) {

print $s;

flush();

}

}

echo "</pre>";

以上是 在PHP中使用实时输出运行过程 的全部内容, 来源链接: utcz.com/qa/415430.html

回到顶部