在调试期间(例如在 Netbeans 中)单步执行 PHP 代码时,我想立即在浏览器中看到 PHP 输出。这可以通过在 PHP 代码的开头包含以下内容来实现(至少在使用 PHP7.2 和 Firefox 时): ob_implicit_flush (); while (@ob_end_flush());这确保了像echo "foo\n";立即导致 'foo' 显示在 Web 浏览器中,而不是在输出缓冲区需要刷新或 PHP 代码在完成或错误时退出时显示。但是有没有办法通过编辑 php.ini 来实现这一点,这样我就不必将它包含在要调试的每一段 PHP 代码中?(我知道这会导致性能下降,但这仅用于开发和调试目的。)
1 回答
一只斗牛犬
TA贡献1784条经验 获得超2个赞
刷新输出缓冲区是开发人员必须执行的隐式操作,因此不能在 php.ini 中打开或关闭。
但是,PHP 确实有一个名为 的功能ticks
,它允许开发人员注册一个回调函数,以便每执行 X 行代码调用一次。
请参阅register_tick_function
,您可以在其中定义自己的回调函数来执行刷新,并让它在程序中的每个语句之间运行。这显然会降低性能,并且可能有更好的方法来实现您想要做的事情。
例子:
declare(ticks=1);
function autoFlushBuffer() {
ob_implicit_flush ();
while (@ob_end_flush());
}
register_tick_function("autoFlushBuffer", true);
// The following lines will appear in your web browser one by one:
echo "one";
sleep(1);
echo "two";
sleep(1);
echo "three";
sleep(1);
- 1 回答
- 0 关注
- 200 浏览
添加回答
举报
0/150
提交
取消