Intereting Posts
PHP – загрузить и перезаписать файл (или загрузить и переименовать его)? Как сделать этот код повторно используемым для разных видов? Правильный метод Повторяющийся платеж IPN-запрос rp_invoice_id Игнорировать чувствительность к регистру при сравнении строк в PHP Я получаю ошибку при загрузке файла расширения .txt и файлов расширения .doc Как показать Prelaoder / Загрузка анимации / gif / percent, пока включенная страница PHP обрабатывает / загружает? Mousedown все еще представляет форму, когда она не должна Первая строка файла с авторазделом пуста Автоматический предварительный php-файл с использованием htaccess относительно файла htaccess Почему $ _SERVER показывает HTTP / 1.0, когда клиент говорил HTTP / 1.1 Возможно ли, что выражение в объявлении массива … возможно? Будет ли PHP умирать в мире разработки веб-страниц? Нужно ли мне взломать ZendFramework1.10.8 / Doctrine1.2.2, чтобы получить модель? Обнаруживать с php, если файлы загружаются или открываются Чтобы иметь булевский тип в Postgres for PHP

Php 404 Not Found Header

Я пытаюсь понять комбинацию из 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.

  • Mabye, если кто-нибудь может объяснить, почему я должен использовать exit После заголовка 404
  • Также почему с BOM я не получаю «заголовки уже отправили ошибку»,

Спасибо всем, и у меня хороший день.

Если я удалю первую строку, и у меня есть спецификация в документе, я получаю пустую страницу (№ 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, чтобы показать конечным пользователям ошибки и уведомления.