我不习惯ob_*
的功能,因此我首先阅读了文档。
我想在{strong>方法中使用ob_clean()
,但文档中指出:
输出缓冲区必须由带有
ob_start()
标志的PHP_OUTPUT_HANDLER_CLEANABLE
开始。否则 ob_clean()将不起作用。
但是我尝试了(只是为了看看它“行不通”):
echo 'a';
ob_clean();
echo 'b';
哪个输出b
。一切似乎都在这里正常工作,但是按照文档的说明应该这样做吗?
ob_start()
是ob_*
函数的必需项吗?ob_start()
?? 如果要这样做,我正在使用PHP 7.2.1。
答案 0 :(得分:2)
简短的答案是,是的,您必须先打开输出缓冲才能使用ob_clean
。但是,有可能通过output_buffering
ini参数为所有文件启用了输出缓冲(请参见manual)。检查这一点的方法是通过ob_get_level()
:
echo ob_get_level();
如果结果不为零,则启用输出缓冲。
如果您确实在未启用缓冲的情况下使用ob_clean()
,则应该看到类似以下错误:
注意:ob_clean()[ref.outcontrol]:无法删除缓冲区。没有 缓冲区删除。在[文件路径]
中