我试图理解3个简单的PHP代码行的组合, 这是代码:
ob_end_clean();
header('HTTP/1.0 404 Not Found');
exit;
所以这是代码,因为我理解第一行 ob_end_clean(); ,可以帮助例如 BOM(字节顺序标记),所以第一行是为了防止任何先前的输出。
第二行标题('HTTP / 1.0 404 Not Found'); 是标题。
第三行退出会终止脚本执行。
如果我删除了第一行,并且我在文档中得到了 BOM ,我会得到空白页(No 404)。
如果我删除了第三行(有和没有BOM ),我得到的页面我想要没有空白页面而没有404。
谢谢大家,祝你有愉快的一天。
答案 0 :(得分:10)
如果我删除了第一行并且我在文档中得到了一张BOM,那我就空白了 页面(No 404)。 你得到空白404因为你没有在那里定义内容......
header('HTTP/1.0 404 Not Found');
只是通知用户在404错误页面网站上... 如果您想为用户显示404通知,可以通过加载404.html文件
来完成if(strstr($_SERVER['REQUEST_URI'],'index.php')){
header('HTTP/1.0 404 Not Found');
readfile('404missing.html');
exit();
}
或直接
if (strstr($_SERVER['REQUEST_URI'],'index.php')){
header('HTTP/1.0 404 Not Found');
echo "<h1>Error 404 Not Found</h1>";
echo "The page that you have requested could not be found.";
exit();
}
退出函数是因为你必须阻止执行另一个PHP代码,这可能是在if
之后或者可能在以后执行,只需它END
答案 1 :(得分:1)
我为什么要在404标题之后使用退出
这样就不会再执行任何代码了。如果没有,那么,没有必要在这种情况下。虽然这是一个很好的习惯。
为什么使用BOM我没有得到“标题已发送错误”
您没有配置PHP安装以向最终用户显示错误和通知。