gpt4 book ai didi

php - ob_clean() 清除所有级别的ob?

转载 作者:行者123 更新时间:2023-12-02 00:58:13 28 4
gpt4 key购买 nike

我刚刚有一个实例,在回显我的 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();

不起作用。 (仍然 echo :'之前')

 ob_get_clean();
ob_get_clean();

作品

ob_end_clean();
ob_end_clean();

作品

最佳答案

您可以简单地在 while 循环中运行 ob_get_level(),例如:

// put this line at the beginning of your script
// to disable auto-buffering through output_buffering ini directive
if (ob_get_level()) ob_end_clean();

ob_start();
ob_start();
ob_start();
ob_start();

$out = '';

while (ob_get_level())
{
echo ob_get_level()."\n";
$out .= ob_get_clean();
}

echo $out;

关于php - ob_clean() 清除所有级别的ob?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31975884/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com