在PHP块中使用die()之后如何显示静态HTML?

sta*_*zel 1 php die

假设我有一些像这样的代码:

<html>
<head><title>Title</title></head>
<body>

<?php
if (!$someCondition){
  die();
}
else{
  #Do something
}
?>
</body>
<html>
Run Code Online (Sandbox Code Playgroud)

我希望这段代码的目的很简单.如果满足某个条件(即无法连接到数据库),那么程序应该死掉,否则它应该执行.执行die()函数时出现问题.它停止那里,只发送前三行的浏览器,但不是最后两行.

是否有一个功能,我可以使用而不是die(),以便php块将停止执行,但静态HTML文本仍然通过?

Kor*_*nel 7

将程序逻辑与演示文稿分离.阅读MVC,模板.

最简单的形式就是这样:

<?php
function logic() {
    if (!$someCondition) {
        return 'display_empty_page';
    } else {
        return 'display_other_stuff';
    }
}

presentation(logic());
Run Code Online (Sandbox Code Playgroud)



对于其他情况,哪里die()或哪些是不可避免的(例如致命错误或第三方代码死亡),有涉及输出处理程序的黑客攻击:

ob_start('myhandler'); 
function myhandler($page) {return $page.' extra markup';}
die();
Run Code Online (Sandbox Code Playgroud)

虽然我建议仅将其用于诊断/调试目的.