动态网站应该如何构建?

How should be a dynamic website structured?

我在 PHP 中编写了自己的 CMS。这很简单,但它不允许我做一些事情,比如从动态页面使用 header() 重定向。
这是它的结构(非常简单):

<?php
$db = new PDO...
try {
    //getting page info from database (by $_GET['id'])
    //and put results into $pageInfo
    $stmt->prepare
//.. catch etc...
?>
<!doctype html>
<html>
<head><title><?=$pageInfo['title'];?></title></head>
<body>
<?php
//this file below cannot contain a php redirect, because headers are already sent
include($pageInfo['content_path']);
?>
</body>
</html>

有一个页面是动态的,可以通过改变get参数id的值来显示其他页面
包含的内容通常包含 PHP 个脚本。

我在网上查了一下,但我不知道如何解决这个问题。
我可以创建一个 header.html 和一个 footer.html 并将它们包含在每个页面中吗?但是,如果我在包含内容之前包含 header 文件,它不会发送 headers 吗?怎么样?

如果这个问题看起来很愚蠢,我真的很抱歉,但我不知道该怎么做。我没有人教我,所以我必须自己学习,但有些东西我不知道去哪里看。

提前致谢。

首选方法是将应用程序分成几个部分,一部分执行代码(控制器或核心),另一部分显示某些内容(视图或模板)。

例如在 MVC (Model/View/Controller) 中,您的单个页面将只是一个调用控制器的调度程序,控制器执行 PHP 代码,并使用第二部分获取一些数据,模型,最后调用一个模板来显示数据。

在您的示例中,您可以首先为每次调用包含两个文件,一个仅包含 PHP-code 并获取所有数据,然后是一个包含 html-template 的文件变量和显示数据所需的非常简单的代码。然后,您可以在 php 部分(控制器)进行重定向并退出。