현재 프로젝트는 index.php를 통해 모든 경로를 지정합니다. 그런 다음 $_SERVER['REQUEST_URI']
이 무엇인지 확인하고 허용 목록을 확인한 다음 관련 HTML 템플릿을 포함하는 로직을 수행합니다. 이처럼 :모든 페이지에 PHP 헤더를 올바르게 포함하는 방법
<?php
include("header.html");
$requested_page = $_SERVER['REQUEST_URI'];
if ($requested_page in $whitelist){
$page_title = $requested_page;
include ($requested_page . "_controller.php");
include ($requested_page . "_template.html");
}
include ("footer.html")
?>
내 문제는 내가 같이, 헤더 템플릿에 $page_title
을 사용하고자하는 것입니다 ...
<title><?php echo $page_title?></title>
그러나 분명히 작동하지 않습니다 헤더가 포함되는 경우 때문에 , $ page_title이 설정되지 않았습니다. 누구든지이 문제를 해결할 수있는 방법을 제안 할 수 있습니까? "출력 버퍼링"도움? 그렇다면 어떻게? php를 사용하여 페이지를 생성하는 방식에 중대한 문제가있는 경우 그렇게 말하십시오! 감사합니다
편집 : 조건부 논리는 실제 프로젝트에서 좀 더 복잡해졌으며, 여기서는 많은 부분을 단순화했습니다. 머리말과 꼬리말을 반복해서 포함하고 싶지 않기 때문에 포함되지 않습니다. 가능하다면 나는 모든 논리에서 그들을 지킬 것입니다.
요청한 페이지가 무엇인지 확인한 후 헤더를 포함하지 않는 이유는 무엇입니까? –
수정에 관해서. header.html이 포함 된 후에는 제목을 변경하는 정말 깨끗한 방법은 없습니다. 출력 버퍼를 파싱하지 않아야합니다. – Jim
@ 짐 아마 내가해야 할 일이있을거야. 그러나 실제로 "출력 버퍼를 구문 분석"하는 것이 무엇을 의미하는지 알지 못합니다. PHP가 모든 것을 준비하고 저장하는 것이 좋을 것입니다. 그러면 $ page_title이 * 어딘가에 정의되어있는 한 페이지가 최종적으로 제공 될 때 올바른 결과가 인쇄됩니다. 그게 가능하니?! 그 출력 버퍼링인가? – Lars