PHP中外部程序的实时输出
我编写并编译了一个命令行程序abc.exe,运行约10分钟,进行一些计算,并每10秒输出一行结果,如下所示:PHP中外部程序的实时输出,php,Php,我编写并编译了一个命令行程序abc.exe,运行约10分钟,进行一些计算,并每10秒输出一行结果,如下所示: C:\>abc.exe Result 1 Result 2 Result 3 . . . 下面的php脚本理论上应该实时显示这些结果,因为它们是由程序生成的 <?php $a = popen('abc.exe', 'r'); while($b = fgets($a)) { echo $b."<br>\n"; ob_flush();flush(); }
C:\>abc.exe
Result 1
Result 2
Result 3
.
.
.
下面的php脚本理论上应该实时显示这些结果,因为它们是由程序生成的
<?php
$a = popen('abc.exe', 'r');
while($b = fgets($a)) {
echo $b."<br>\n";
ob_flush();flush();
}
pclose($a);
?>
然而,我只是在程序执行结束时得到所有结果。为什么会发生这种情况?请注意,如果我用ping 8.8.8.8或tracert 8.8.8.8替换abc.exe,脚本工作起来就像一个符咒。请帮帮我,我已经尝试了这里类似问题中的所有建议,但似乎没有任何效果 也许你没有输出和结束字符?@dudeman你的评论给了我一个提示!我通过在每次printf之后添加fflushstdout来更改C代码。现在脚本按预期工作。非常感谢。