如何在输出缓冲区中看到包含文件中的php错误?

时间:2014-09-11 19:33:59

标签: php error-handling output-buffering

使用输出缓冲区时的空白屏幕以及所包含文件中的语法错误 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>

3 个答案:

答案 0 :(得分:2)

一个选项是覆盖错误处理程序,并调用ob_end();在打印出抛出的错误/警告/异常之前。 其他选项,是经常检查错误日志,如果您遇到奇怪的行为。

答案 1 :(得分:0)

不要使用@include ('body.tpl');我做了什么: - (

答案 2 :(得分:-1)

嗯......你可以使用这样的例外:

$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();