我在 Linux Web 服务器上遇到了 PHP 输出缓冲区刷新的问题。输出缓冲区得到正确维护,所有正确的数据都在我的代码中推送到它,但通常的刷新机制不会将其刷新到浏览器。我已经尝试了这里发布的所有内容:http : //php.net/manual/en/function.flush.php但到目前为止没有成功。
我从 php.net 得到了一个小脚本来测试它:
<?php
ob_start();
for($i=0;$i<70;$i++)
{
echo 'printing...<br />';
ob_get_flush();
flush();
usleep(300000);
}
?>
Run Code Online (Sandbox Code Playgroud)
这应该向浏览器打印“正在打印...”70 次,每三秒一行。这在我的其他基于 Windows 的测试环境(仍然使用 apache、XAMPP 包)上运行良好,但在我的 Linux 服务器上却没有。它在向浏览器提供任何内容之前等待脚本完成,基本上忽略整个刷新命令。
如果有人以前经历过这种情况或知道任何可以提供帮助的东西(无论是服务器配置还是代码调整),我们将不胜感激!