【发布时间】:2012-03-01 21:57:51
【问题描述】:
似乎尽管我已经做了一切努力让它工作,但它只是不起作用。
这就是我所做的一切:
- output_buffering = 4096
- zlib.output_compression = 关闭
- 尝试使用 ob_implicit_flush();
- 尝试使用 ob_flush();
- 将 ini 设置 output_buffering 中的缓冲区大小减少到 1
以下是我试图开始工作的代码(基本上每 1 秒输出一行),但我在 15 秒后得到整个输出。
使用 ob_implicit_flush():
<?php
ob_implicit_flush();
for($i=0;$i<=15;$i++)
{
print($i."<BR />");
sleep(1);
}
使用 ob_start() 和 ob_flush() 方法:
<?php
ob_start();
for($i=0;$i<=15;$i++)
{
print($i."<BR />");
ob_flush();
}
还有其他我缺少的 PHP 设置吗?请帮忙。
编辑:在这个 SO 问题中使用 OP 的示例,它可以工作:PHP buffer why \r\n
我看到我必须执行 str_repeat() 来生成一个字符串以溢出缓冲区。为什么php手册中没有提到这一点?这真的是程序吗?
【问题讨论】:
-
这段代码看起来不完整。在示例上下文中,我看不到对
ob_* 函数集的调用。 -
抱歉,我已经更新了。