显示两次HTML

时间:2013-03-15 10:45:07

标签: php html handler stack-trace clear

所以我正在为我的网站进行错误处理。我希望能够使用

激活错误处理程序
  

include_once( “errorhandler.php”);

到目前为止它工作得很好,如果发生错误则显示错误,但是我正面临另一个问题。我做了一个名为“test.php”的php文件,看起来像这样:

<?php
include("errorhandler.php");
?>

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title></title>
    </head>
    <body>
        <h1>My awesome page :D</h1>
        <?php
            mysql_connect("test","test");
            opendir("test");
        ?>
    </body>
</html>

现在的问题是,显示错误但是也会显示标题,因为它会在脚本崩溃并启动错误处理程序之前执行该部分。

它使页面看起来像这样: Image of the error

基本上,我需要错误处理程序在写入Html之前清除所有内容。

我尝试过使用<script> document.write('');</script>

在我的错误处理方法的开头,没有运气。

所以现在我坚持这个,关于如何解决这个问题的任何想法?

3 个答案:

答案 0 :(得分:0)

put die();在包含之后,将停止运行该页面的其余部分,或者在您的例外中包含if if (exception) { //do include } else { //show normal code }

答案 1 :(得分:0)

您可以尝试将html放在函数中:

public function render() {
    $this->ht_content = '<html> Your html </html>';
    return $this->ht_content;
}

然后在你的错误处理程序中你可以这样说:

if($errors) {
    // Error stuff here
} else {
    $ht = new html();
    $ht->render();
}

你可以根据自己的需要做大而好的事情:)

答案 2 :(得分:0)

已使用ob_clean(); 在错误处理程序的开头,所以当它发生时它会清理页面!