PHP输出缓冲区获取白屏并且方法返回时没有错误
作者:互联网
我一直在使用PHP很长一段时间,由于某种原因,迁移到新服务器导致白屏死机.显然它必须是因为版本差异.我多年来一直使用相同的输出缓冲模式.
通常…
ob_start();
?>
//HTML...
<?php
$output = ob_get_clean();
ob_flush();
return $output;
最近我发现了我的普通/更新版本的PHP中的一些问题(我认为在我的WAMP上5.4),同时返回HTML部分并在视图之间传递它们(我使用MVC).它们完全显示在屏幕上,根本没有保存在缓冲区中.我发现我在ob_start()中需要一个必要的标志,让它知道可以删除缓冲区.
像ob_start一样(null,0,PHP_OUTPUT_HANDLER_REMOVABLE);
但是现在我的页面已经存在而不是在WAMP上,整个页面现在断开并显示完整的白色屏幕.我打开了所有错误报告但仍然没有.没有任何东西出现在日志等等所以我做了一大堆回声“测试”;死;看看它破坏了哪一行,当我删除在视图之间传递完成的HTML块的缓冲部分时,一切都很好.
我需要弄清楚如何正确地返回我的部分.
解决方法:
在这种情况下你不需要ob_flush()因为ob_get_clean()已经关闭了输出缓冲区.
标签:php,ob-get-contents,output-buffering 来源: https://codeday.me/bug/20190708/1402812.html