ob_get_level()从1级开始

Jas*_*wis 7 php buffer output-buffering

输出缓冲有一些问题.主要是,我正在尝试使用ob_gzhandler回调运行输出缓冲,但它一直告诉我它使用不受支持的压缩类型.一切都启用了,我相信问题是在我的脚本开头运行ob_get_level()会产生1级.php.ini将我的output_buffering设置为4096.

如果我运行如下:

while(ob_get_level() > 0){
   ob_end_clean();
}
Run Code Online (Sandbox Code Playgroud)

然后我可以使用ob_gzhandler回调成功运行ob_start().但我想知道它是否应该是一个问题.在我的脚本中,我在各个点调用ob_clean(),因为我避免堆叠太多缓冲区,因为我已经读过这可以提高性能.我只是不确定我应该在这做什么.

干杯.

Pis*_*3.0 8

您默认启用了输出缓冲(请参阅文档) - 这基本上意味着每个PHP脚本都以ob_start()开头.

如果要为所有PHP脚本禁用默认OB,请在php.ini中设置output_buffering = Off.

如果您只想禁用此特定脚本的默认OB,请使用while循环 - 这是非常正确的.

至于ob_clean - 你确定要删除缓冲区中的输出吗?除非你看到很慢的页面加载,否则IMO并不是必需的.不要担心优化(至少现在不是).