Я пытаюсь понять комбинацию из 3 простых строк кода php, это код:
ob_end_clean(); header('HTTP/1.0 404 Not Found'); exit;
Итак, это код, и, как я понимаю, первая строка ob_end_clean (); , Может помочь, например, с BOM (Знак байтового байта) , поэтому первая строка предназначена для предотвращения любого предыдущего вывода.
Второй заголовок строки ('HTTP / 1.0 404 Not Found'); это заголовок.
И выход третьей строки завершает выполнение скрипта.
Если я удалю первую строку, и у меня есть спецификация в документе, я получаю пустую страницу (№ 404).
Если я удаляю третью строку ( с и без спецификации ), я получаю страницу, на которой я не хочу пустую страницу, и нет 404.
Спасибо всем, и у меня хороший день.
Если я удалю первую строку, и у меня есть спецификация в документе, я получаю пустую страницу (№ 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
почему я должен использовать выход После заголовка 404
Чтобы новый код не выполнялся. Если нет, то в этом случае не нужно. Хотя это хорошая привычка.
Также почему с BOM я не получаю «заголовки уже отправили ошибку»,
Вы не настроили вашу установку PHP, чтобы показать конечным пользователям ошибки и уведомления.