Пустой экран при использовании выходного буфера и ошибки синтаксиса в включенном файле. 
  PHP не показывает ошибок из выходного буфера. 
  Как увидеть синтаксические ошибки буфера вывода php? 
В моем проекте я использовал @ для скрытия ошибок, если файл не существует. Но если файл существует и имеет фатальные ошибки, они также не отображались бы.
Вот пример кода.
<?php $title = 'Some title'; ob_start(); @include ('body.tpl'); //I have some php here $content = ob_get_clean(); ?><!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title><?= $title; ?></title> </head> <body> <?= $content; ?> </body> </html> 
Один из вариантов – переопределить обработчики ошибок и вызвать ob_end (); перед печатью брошенной ошибки / предупреждения / исключения. Другой вариант – часто проверять журнал ошибок, если вы сталкиваетесь с нечетным поведением.
  Не используйте @include ('body.tpl');  Что я сделал 🙁 
Mmm … Вы можете использовать Exceptions следующим образом:
 $includeFile = 'blah.php'; ob_start(); try { if (!is_file($includeFile)) { throw new Exception('File not found'); } include $includeFile; } catch (Exception $e) { include 'error-content-page.php'; } $content = ob_get_clean();