php输出系统()实时

时间:2015-05-29 16:19:22

标签: php firefox buffer

我正在尝试进行系统调用,并将每一行实时发送到浏览器

echo('<pre>');
system('ping -c 10 www.google.com');
echo('</pre>);

当我从命令行调用它时,这是有效的(ping的每一行一次输出一个)。但是,当我尝试使用浏览器(firefox或chrome)打开它时,它不起作用。

我几乎可以肯定这与浏览器强制执行的输出缓冲有关。除非高于cetrain阈值,否则它们不会显示新数据。解决这类问题通常涉及输出一堆空白字符,即str_repeat(' ',1024*64)。你能想到让浏览器实时显示输出的任何方法吗?

2 个答案:

答案 0 :(得分:1)

你不能这样做。 你的php请求正在运行一次并重新启动一个响应。

系统功能的结果也会在执行命令结束时显示。您在命令行中看到的只是命令的日志而不是您的PHP代码。

我建议使用一种长轮询技术或soquet-io与您的服务器建立持续/实时通信。

答案 1 :(得分:0)

presentViewController

&GT;