1

好的,在燃烧开始之前,我在这里和其他一些链接上做了一些研究: 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]); ?>

这对于将任何标准输出和标准错误从控制台应用程序输出到我的网页非常有效,但是,由于我假设正在缓冲它不会实时更新。我已经尝试过我发布的链接中的方法和 Ajax 中的类似方法,但两者都不会实时更新,只需等待所有输入完成然后显示在页面上即可。

我能想到的只是 php 在尝试对输出做任何事情之前正在等待 proc_open() 命令完成执行。

任何见解将不胜感激。

谢谢!

4

0 回答 0