I am trying to understand the combination of 3 simple php code lines, This is the code:
ob_end_clean();
header(\'HTTP/1.0 404 Not Found\');
exit;
If i remove the first line and i got a BOM at the document i get blank page (No 404). you get blank 404 because you have no content defined in there...
header('HTTP/1.0 404 Not Found');
is only giving notice that user is on 404 error page site... if you want to display some 404 notice for user you can do this by loading your 404.html file
if(strstr($_SERVER['REQUEST_URI'],'index.php')){
header('HTTP/1.0 404 Not Found');
readfile('404missing.html');
exit();
}
or directly
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();
}
exit function is there because you have to prevent execution of another php code, which may be directly after if
or which may be excecuted later, simply it says END
why should i use the exit After the 404 header
So that no further code will be executed. If there isn't any then, fine, it isn't necessary in this case. It's a good habit to get into though.
Also why with the BOM i dont get "headers already sent error"
You didn't configure your PHP installation to show errors and notices to the end user.