gpt4 book ai didi

php - PHP Whoops错误句柄清除缓冲区

转载 作者:行者123 更新时间:2023-12-03 07:58:30 27 4
gpt4 key购买 nike

问题

在过程脚本中,PHP Whoops Pretty Page处理程序的内容将与应用程序缓冲区输出中的部分内容混合在一起。
在隐藏的html标记中,woops可能会出现困惑或输出。

问题

如何在Whoops处理程序缓冲区之前清除先前的缓冲区?

最佳答案

以下解决方案 worker 对我来说:

At the earliest point of your script and perhaps only in a DEBUG or DEVELOPER mode as I did you need to do:


if(DEVELOPER_DEBUG === true)
ob_start();

然后在声明我做过的地方:
if(DEVELOPER_DEBUG === true)
{
$_whoops = new \Whoops\Run();

$_whoops->pushHandler(function(){
ob_clean();
});

$_handler = new \Whoops\Handler\PrettyPageHandler();
$_whoops->pushHandler($_handler);
$_whoops->register();
}

在程序脚本中的用例中,这可以完美地工作,以在Whoops启动自己的输出之前清除任何初始生成的缓冲区。

为何起作用

可以多次调用ob_start(),缓冲区刷新或清除函数的调用次数应与按顺序调用start的次数相同。

通过使您的应用程序启动其自己的缓冲区,可以使其成为可以清除的资源,Whoops也会同时启动其自身的缓冲区,因此,通过注册一个处理程序以清除第一个缓冲区(您的应用程序),然后在发生错误时清除它,Whoops可以清除先前的缓冲区。

缓冲区控制

例如,每次调用 ob_start 都会创建一个增量缓冲区。

如果调用ob_start 3次,则需要调用ob_flush 3次,以便输出所有缓冲的内容。

如果调用一次,则仅清除或刷新在声明下一个ob_start之前生成的内容。

可以适应OOP。

关于php - PHP Whoops错误句柄清除缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44107895/

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