我正在尝试进行系统调用,并将每一行实时发送到浏览器
echo('<pre>');
system('ping -c 10 www.google.com');
echo('</pre>);
当我从命令行调用它时,这是有效的(ping的每一行一次输出一个)。但是,当我尝试使用浏览器(firefox或chrome)打开它时,它不起作用。
我几乎可以肯定这与浏览器强制执行的输出缓冲有关。除非高于cetrain阈值,否则它们不会显示新数据。解决这类问题通常涉及输出一堆空白字符,即str_repeat(' ',1024*64)
。你能想到让浏览器实时显示输出的任何方法吗?
答案 0 :(得分:1)
你不能这样做。 你的php请求正在运行一次并重新启动一个响应。
系统功能的结果也会在执行命令结束时显示。您在命令行中看到的只是命令的日志而不是您的PHP代码。
我建议使用一种长轮询技术或soquet-io与您的服务器建立持续/实时通信。
答案 1 :(得分:0)
presentViewController
&GT;