猿问

使用PHP中的实时输出运行进程

使用PHP中的实时输出运行进程

我正在尝试在网页上运行一个将实时返回其输出的进程。例如,如果我运行'ping'进程,它应该在每次返回一个新行时更新我的页面(现在,当我使用exec(命令,输出)时,我被迫使用-c选项并等待进程完成以查看在我的网页上输出)。有可能在PHP中这样做吗?

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


烙印99
浏览 769回答 3
3回答

翻阅古今

这对我有用:$cmd = "ping 127.0.0.1";$descriptorspec = array(&nbsp; &nbsp;0 => array("pipe", "r"),&nbsp; &nbsp;// stdin is a pipe that the child will read from&nbsp; &nbsp;1 => array("pipe", "w"),&nbsp; &nbsp;// stdout is a pipe that the child will write to&nbsp; &nbsp;2 => array("pipe", "w")&nbsp; &nbsp; // 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)) {&nbsp; &nbsp; while ($s = fgets($pipes[1])) {&nbsp; &nbsp; &nbsp; &nbsp; print $s;&nbsp; &nbsp; &nbsp; &nbsp; flush();&nbsp; &nbsp; }}echo "</pre>";
随时随地看视频慕课网APP
我要回答