PHP,MVC,404 – 如何重定向到404?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP,MVC,404 – 如何重定向到404?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试建立自己的MVC作为练习和学习经验.到目前为止,这就是我所拥有的(index.PHP):

<?PHP
require "config.PHP";

$page = $_GET['page'];
if( isset( $page ) ) { 
    if( file_exists( MVCROOT . "/$page.PHP" ) ) {
        include "$page.PHP";
    } else {
        header("HTTP/1.0 404 Not Found");
    }
}


?>

我的问题是,我不能使用标头发送到404,因为标头已经发送.我应该重定向404.htML还是有更好的方法?随意批评我到目前为止(它很少).我会喜欢建议和想法.谢谢!

解决方法

MVC框架中的标准做法是使用 output buffering(ob_start(),ob_get_contents()和ob_end_clean())来控制发送给用户的方式,时间和内容.

这样,只要您捕获框架的输出,就不会在您需要之前将其发送给用户.

要加载404,您将使用(例如):

<?PHP
require "config.PHP";

$page = $_GET['page'];
ob_start();

if (isset($page)) {
    echo "isset is true";
    if (file_exists(MVCROOT."/$page.PHP")) {
        include MVCROOT."/$page.PHP";
        $output = ob_get_contents();
        ob_end_clean();
        echo $output;
    } else {
        ob_end_clean(); //we don't care what was there
        header("HTTP/1.0 404 Not Found");
        include MVCROOT."/error_404.PHP"; // or echo a message,etc,etc
    }
}
?>

希望有所帮助.

脚本宝典总结

以上是脚本宝典为你收集整理的PHP,MVC,404 – 如何重定向到404?全部内容,希望文章能够帮你解决PHP,MVC,404 – 如何重定向到404?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。