php.ini中output_buffering的值1和4096之间有什么区别

时间:2019-02-11 14:00:13

标签: php output-buffering

php.ini中output_buffering ini变量的值到底是什么意思? 在我们较旧的服务器上,它设置为1

output_buffering = 1
  

使用此设置,我可以呼叫ob_clean();,它的工作方式就像   魅力。但是,我们将系统移到了新服务器上,输出   缓冲设置为4096:

output_buffering = 4096

这样,调用ob_clean();并没有任何效果,直到我用ob_start();显式地开始代码的开头(似乎在另一台具有output_buffering = 1的服务器上被隐式调用了) )。

1 个答案:

答案 0 :(得分:4)

  

output_buffering 布尔值/整数

     

通过将此指令设置为“ On”,可以为所有文件启用输出缓冲。如果您希望将缓冲区的大小限制为某个大小-您可以使用最大字节数代替'On'作为此指令的值(例如output_buffering = 4096)。在PHP-CLI中,此指令始终为Off。

来自the PHP Manual

这是什么意思:

  • 0的值为false / off,因此禁用了输出缓冲。
  • 值为1为true / on,以便启用输出缓冲,并且对最大缓冲区大小没有设置限制(至少在此范围内)。
  • >1是自定义输出缓冲区大小的最大字节数。

因此,以上在PHP.ini配置中的选择是:

    output_buffering= 0 / 1 / 1+