引用自http://php.net/ob_end_clean
失败的原因首先是您在没有活动缓冲区的情况下调用了该函数,或者由于某种原因无法删除缓冲区(可能是特殊缓冲区)
这个特殊的缓冲区是什么?
现在,要清理所有缓冲区,我有这样的代码
while (@ob_end_clean());
但是如果由于某种原因它应该遇到“特殊缓冲区”,这可能会导致无限循环。
引用自http://php.net/ob_end_clean
失败的原因首先是您在没有活动缓冲区的情况下调用了该函数,或者由于某种原因无法删除缓冲区(可能是特殊缓冲区)
这个特殊的缓冲区是什么?
现在,要清理所有缓冲区,我有这样的代码
while (@ob_end_clean());
但是如果由于某种原因它应该遇到“特殊缓冲区”,这可能会导致无限循环。
再次从手册http://php.net/manual/en/function.ob-start.php
我认为特殊缓冲区可能是指ob_start()
使用特定参数(如chunk_size
or )创建的缓冲区erase
。
块大小
如果传递了可选参数 chunk_size,则缓冲区将在任何导致缓冲区长度等于或超过 chunk_size 的输出调用之后被刷新。默认值 0 表示只有在关闭输出缓冲区时才会调用输出函数。
擦除
如果可选参数 erase 设置为 FALSE,则在脚本完成之前不会删除缓冲区。这会导致刷新和清理函数会发出通知并在调用时返回 FALSE。