在下面的php中进行错误处理是否可以接受?我对ob_start()/ob_clean()/ob_flush()
不太熟悉,所以我想知道使用它们有什么不好的影响吗?例如,它们会影响性能吗?
<?php
function custorErr()
{
ob_clean();
//echo error message and some other error handling...
die();
}
set_error_handler("custorErr");
ob_start();
?>
<!doctype html>
<!-- html here -->
<html>
<head>
</head>
<body>
demo
</body>
</html>
<?php ob_flush();?>
如果这不是最佳做法,那么在出现错误时是否有更好的方法可以清除所有页面内容?
答案 0 :(得分:0)
我猜你的方法会很好用,如果你想反复使用它,我认为你的方法是最好的。
另一个选择是将缓冲部分放在try/catch
- 块中。如果出现问题,请清理输出缓冲区。如果您只想查看此错误的一个位置,我相信这种方法会更好。
<?php
try {
ob_start();
?>
<!doctype html>
<!-- html here -->
<html>
<head>
</head>
<body>
demo
</body>
</html>
<?php
ob_flush();
}
catch {Exception $e) {
ob_end_clean(); //OR ob_clean();
echo 'error is ' . print_r($e, true);
}
有关清理输出缓冲的一些文档: