У меня есть простой (учебный) веб-сайт, структура которого состоит из меню выбора контента и панели контента, где контент отображается, когда выбран один из элементов меню.
В меню используются ссылки типа ?content_id=...
для передачи информации.
Я хотел бы обработать 404 кода для несуществующих идентификаторов или отсутствующего содержимого, но для этого мне нужно вычислить содержимое панели содержимого перед загрузкой страницы, чтобы я мог вывести правильный заголовок раньше всего остального. Я закончил писать этот фрагмент кода в начале моего файла и печатать переменную $content
, когда это необходимо. В любом случае, я чувствую себя немного неловко с таким подходом, так как мне приходится останавливать естественный поток, чтобы поймать вывод include
.
<?php
// if no content is specified in the address, select the home page (0)
$content_id = (isset($_GET['content_id'])) ? $_GET['content_id'] : 0;
//check if selected content exists and put the content inside the $content variable (to be used later)
if ($content_id < 0 OR $content_id > 2 OR !is_file('exContent/content'.$content_id.'.php')) {
header("HTTP/1.0 404 Not Found");
ob_start();
include 'exContent/noContent.php';
}
else {
ob_start();
include 'exContent/content'.$content_id.'.php';
}
$content = ob_get_contents(); ob_end_clean();
?>
Я не могу понять, как лучше это сделать, я был бы очень рад, если бы вы могли мне помочь!