PHP在页面加载时回显内容

时间:2011-06-18 14:20:44

标签: php apache http

所以我正在做一些PHP / Apache的实验。 假设我有这段代码。

<div>DIV 1</div>
<?php sleep(2); ?>
<div>DIV 2</div>
<?php sleep(2); ?>
<div>DIV 3</div>
<?php sleep(2); ?>
<div>DIV 4</div>
<?php sleep(2); ?>

出于某种原因,在我的本地apache网络服务器上,所有4个sleep()执行完毕后(8秒),所有数据都会立即显示在浏览器中。

但是,如果我在主机的服务器上运行它,数据会实时回显到浏览器。 如... div1出现,2秒后div 2出现等。

为什么?这是Apache的一些设置吗?

1 个答案:

答案 0 :(得分:6)

不,它可能是php中的设置。

在本地服务器中,在php.ini文件中启用了output_buffering。

您可以通过设置:

来禁用它
output_buffering = off

要确保每次使用类似回声的语句时都将内容发送到浏览器,请添加:

implicit_flush = on

您还可以通过给output_buffering赋值来设置缓冲区大小。

output_buffering = 4096

此处缓冲区大小为4KB。

输出缓冲告诉php将所有要发送到浏览器的数据保留在内存中,直到它在代码中引发flush()指令,缓冲区恰好已满,或者它是脚本的结尾。

以下是来自php.net的输出缓冲区的完整参考:php output buffer