PHP 输出缓冲区出现白屏,方法返回时没有错误


PHP Output Buffer Getting White Screen & No Errors On Method Return

我已经使用PHP很长时间了,由于某种原因,迁移到新服务器导致了白屏死机。显然,这一定是因为版本差异。多年来,我一直使用相同的输出缓冲区模式。

通常。。。

ob_start();
?>
    //HTML...
<?php
$output = ob_get_clean();
ob_flush();
return $output;

最近,我在返回HTML部分并在视图之间传递它们(我使用MVC)时发现了普通/较新版本的PHP中的一些问题(我认为在我的WAMP上为5.4+)。它们完全显示在屏幕上,根本不保存在缓冲区中。我发现我的ob_start()中需要一个必要的标志,让它知道缓冲区可以删除。

像这样ob_start(null, 0, PHP_OUTPUT_HANDLER_REMOVABLE);

但是,现在我的页面是实时的而不是在 WAMP 上,整个页面现在都会中断并显示完整的白屏。我打开了所有错误报告,但仍然一无所获。日志中没有显示任何内容等。因此,我做了一系列echo "test"; die;,以查看它在哪一行中断,并且当我删除在视图之间传递已完成的HTML块的缓冲部分时,一切都很好。

我需要弄清楚如何正确返回我的部分。

在这种情况下不需要

ob_flush(),因为 ob_get_clean() 已经关闭了输出缓冲区。