我已经使用 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 块的缓冲部分时,一切都很好。
我需要弄清楚如何正确返回我的部分。