1

引用自http://php.net/ob_end_clean

失败的原因首先是您在没有活动缓冲区的情况下调用了该函数,或者由于某种原因无法删除缓冲区(可能是特殊缓冲区

这个特殊的缓冲区是什么?

现在,要清理所有缓冲区,我有这样的代码

while (@ob_end_clean());

但是如果由于某种原因它应该遇到“特殊缓冲区”,这可能会导致无限循环。

4

1 回答 1

1

再次从手册http://php.net/manual/en/function.ob-start.php

我认为特殊缓冲区可能是指ob_start()使用特定参数(如chunk_sizeor )创建的缓冲区erase

块大小

如果传递了可选参数 chunk_size,则缓冲区将在任何导致缓冲区长度等于或超过 chunk_size 的输出调用之后被刷新。默认值 0 表示只有在关闭输出缓冲区时才会调用输出函数。

擦除

如果可选参数 erase 设置为 FALSE,则在脚本完成之前不会删除缓冲区。这会导致刷新和清理函数会发出通知并在调用时返回 FALSE。

于 2013-10-03T10:46:44.720 回答