好吧,在火炬开始之前,我在这里和其他一些链接做了一些研究: Run process with realtime output in PHP
这就是我目前使用的:
<?php
$descriptorspec = array(
0 => array("pipe", "r"), // stdin
1 => array("pipe", "w"), // stdout
2 => array("pipe", "w"), // stderr
);
flush(); ?>
<?php $process = proc_open($_POST['field1'], $descriptorspec, $pipes, dirname(__FILE__), null);?>
<?php $stdout = stream_get_contents($pipes[1]); fclose($pipes[1]); $stderr = stream_get_contents($pipes[2]); fclose($pipes[2]); ?>
这对于将任何stdout和stderr从控制台应用程序输出到我的网页非常有用,但是,由于我假设它正在缓冲,它不会实时更新。我已尝试过我发布的链接中的方法和Ajax中的类似方法,但都不会实时更新,只需等待所有输入完成然后在页面上显示。
所有我能想到的是,php正在等待proc_open()命令在尝试对输出做任何事情之前完成执行。
非常感谢任何见解。
谢谢!