Я очень давно использую PHP и по какой-то причине миграция на новый сервер вызвала «белый экран смерти». Очевидно, это должно быть из-за разницы версий. Я использовал один и тот же шаблон выходного буфера в течение многих лет.
Как правило, …
ob_start();
?>
//HTML...
<?php
$output = ob_get_clean();
ob_flush();
return $output;
Недавно я обнаружил некоторые проблемы в моих обычных / более новых версиях PHP (5.4+ на моем WAMP, я думаю) при возврате разделов HTML и передаче их между представлениями (я использую MVC). Они отображались полностью на экране и вообще не сохранялись в буфере. Я узнал, что мне нужен необходимый флаг в моем ob_start()
дать ему понять, что буферы могут быть удалены.
Вот так ob_start(null, 0, PHP_OUTPUT_HANDLER_REMOVABLE);
Однако теперь, когда моя страница жива, а не на WAMP, вся страница теперь ломается и показывает полный белый экран. У меня все отчеты об ошибках включены и до сих пор ничего. Ничего не отображается в журналах и т. Д. Так что я сделал большую серию echo "test"; die;
чтобы увидеть, на какой строке он разбивается, и, конечно же, все хорошо, когда я удаляю буферизованные разделы, которые передают готовые блоки HTML между представлениями.
Мне нужно выяснить, как правильно вернуть мои разделы.
Вам не нужно ob_flush () в этой ситуации, потому что ob_get_clean () уже закрыл выходной буфер.
Других решений пока нет …