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