【问题标题】:What is the difference between values 1 and 4096 of output_buffering in php.iniphp.ini 中 output_buffering 的值 1 和 4096 有什么区别
【发布时间】:2019-02-11 14:00:13
【问题描述】:

php.ini 中output_bufferingini 变量的值究竟是什么意思? 在我们的旧服务器上,它被设置为 1

output_buffering = 1

有了这个设置,我可以打电话给ob_clean();,它就像一个 魅力。然而,我们将我们的系统移到了一个新的服务器上 缓冲设置为 4096:

output_buffering = 4096

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

【问题讨论】:

  • 4096 是默认缓冲的输出大小。
  • 您在问题中添加的php.ini、PHP 手册和标签名称Output buffering 都将为您提供有关输出缓冲的大量信息。
  • @Peter 好吧,也许这个标题有误导性,但请阅读这个问题:你可以看到我实际上并没有问什么是输出缓冲,但是为什么值 1 在开头显式地开始输出缓冲我的脚本,但值为 4096 我必须显式调用 ob_start();
  • @ACs 请阅读链接以及其中包含的手册部分。

标签: php output-buffering


【解决方案1】:

output_buffering 布尔/整数

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

来自the PHP Manual

这意味着:

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

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

    output_buffering= 0 / 1 / 1+

【讨论】:

    猜你喜欢
    • 2018-04-20
    • 1970-01-01
    • 2010-12-17
    • 1970-01-01
    • 2011-02-27
    • 2018-08-06
    • 2021-12-01
    • 2011-10-24
    • 2018-04-07
    相关资源
    最近更新 更多