php 4和5之间是否有输出差异?

时间:2009-12-20 21:00:10

标签: php php4

前几天我注意到我为php 5编写的新脚本开始输出在php脚本实际完成之前可以查看的html。这是否发生在4?

例如,我有一个很长的循环,每次迭代都会回事。输出在kb方面很小,所以我不认为由于下载速度而导致延迟。有人可以解释输出的差异吗?

4 个答案:

答案 0 :(得分:6)

php.inioutput_buffering指令的配置可能存在差异吗?

如果启用output_buffering,PHP将“保留”生成的输出到内存(至少,如果它不会变得大于内存缓冲区的大小),并且只有在页面生成完成后才将其发送到浏览器。

如果output_buffering被禁用,则即使脚本的执行尚未完成,也会在生成时立即发送输出。

答案 1 :(得分:5)

我怀疑PHP 4和5之间在这方面存在差异,但您可以在两个版本上获得此行为,即启用/禁用output_buffer。也许PHP 5的默认值与PHP 4的默认值不同? (尚未检查)

答案 2 :(得分:1)

发送数据时,它依赖于PHP配置,它是一个输出缓冲区,其行为类似于缓冲区。

话虽如此,您可以使用函数ob_start()ob_end_flush()来控制缓冲区。 Zend Framework在输出缓冲方面做了一些聪明的事情......例如......

答案 3 :(得分:1)

通常的嫌疑人是:

仔细查看工具上的phpinfo()以查看HTTP标头可以帮助您。