【发布时间】:2015-08-12 21:40:14
【问题描述】:
我刚刚有一个实例,在回显我的 json 之前,我正在执行 ob_clean() 以进行 ajax 调用。问题是,我当时是 2 级 ob,而 ob_clean() 只是清除内部 ob。为了清除它们,好吧,我只是这样做了
ob_clean();
ob_clean();
清理所有当前缓冲区的正确方法是什么?
编辑:是的,这个问题很相似,但另一个问题是关于冲洗,我说的是清洁。关于 end_clean、clean、get_clean 等,有些事情我不明白,因此,答案将与另一个答案不同且有细微差别。
也就是说: 给定:
ob_start();
echo 'before';
ob_start();
echo 'second';
:
while (ob_get_level()){
ob_end_clean();
}
作品
while (ob_get_level()){
ob_clean();
}
导致无限循环,最终超时。
ob_clean();
ob_clean();
ob_clean();
ob_clean();
ob_clean();
不起作用。 (仍然回声:'之前')
ob_get_clean();
ob_get_clean();
作品
ob_end_clean();
ob_end_clean();
作品
【问题讨论】:
-
没有。由您来跟踪已启动的 ob 缓冲区的数量。这是为了防止“子”代码弄乱“父”代码建立的缓冲区。
-
好的,我需要告诉你们:如果您像
ob_start();include 'view.php';$out = ob_get_clean;那样做,并且您的视图中有错误,它会搞砸您的缓冲区,并在您不想要的地方刷新,等
标签: php ajax output-buffering