使用PHP从模板动态创建页面

使用PHP从模板动态创建页面,php,Php,我正在为我正在建设的网站创建一个博客。很明显,主博客页面中列出了每个应该列出的博客。但我希望每个博客在网站上也有自己的个人页面。我希望这个页面是在创建博客文章时生成的 我的问题是,创建此页面的最佳方法是什么。如果我使用php文件函数来创建它,我需要为页面填充数百行HTML的$data变量。我想这是可行的,如果我也能够动态地改变变量,使之适用于需要发布在所述页面上的新内容 有更好的方法吗?PHP是否适用于此?任何建议都会有帮助。一般来说,我会这样做: 1。创建“博客”SQL数据库表。 创建一个“i

我正在为我正在建设的网站创建一个博客。很明显,主博客页面中列出了每个应该列出的博客。但我希望每个博客在网站上也有自己的个人页面。我希望这个页面是在创建博客文章时生成的

我的问题是,创建此页面的最佳方法是什么。如果我使用php文件函数来创建它,我需要为页面填充数百行HTML的$data变量。我想这是可行的,如果我也能够动态地改变变量,使之适用于需要发布在所述页面上的新内容


有更好的方法吗?PHP是否适用于此?任何建议都会有帮助。

一般来说,我会这样做:

1。创建“博客”SQL数据库表。 创建一个“id”列(主键),并为“blog\u date”、“title”、“author”和“html\u content”等字段创建列

2。使用php创建“Blog”类。 创建与“Blogs”表中的SQL字段相对应的属性,包括“id”

3。创建公共的“loadFromDB()”和“saveToDB()”方法 这些方法应将“Blogs”(由id选择)中的行的SQL值加载并保存到类属性中,或从类属性中加载和保存

4。为“Blog”类创建公共“view()”方法 这只是一个显示日期、标题、作者等的单个博客条目的HTML视图/模板

5。在服务器上的文件夹中创建“index.php”博客页面 您希望使用此页面显示单个博客条目。 从主博客页面中的链接调用此页面时,请使用博客的SQL id,例如通过http GET:“”。在index.php内的php代码中,您希望条目出现在其中,请执行以下操作:

$id_default = 27;  // the blog entry which must appear when there is no query parameter
$id = empty($_GET['id']) ? $id_default : $_GET['id'];
$B = new Blog($id);
$B->loadFromDB();
$html = $B->view();
echo $html;
这样,您就不必为每个博客条目创建一个HTML页面,或者将所有条目放在一个页面上。您可以只使用一个动态创建的页面来代替GET参数


显然,您可以/必须做更多的事情,例如创建评论显示和表单以及“评论”SQL表等,但这应该会给您一些想法。

可以为每个博客动态创建单独的页面。以下是您可以遵循的步骤

  • 创建一个主模板。在需要动态内容的位置添加一些特殊标记
  • 添加新帖子时,阅读主模板中的内容,用实际值替换相应的特殊标记
  • 将最终生成的内容写入新文件,并将其保存到相关位置
  • 您已准备好访问该页面

  • 是的,它叫:)这是php的主要用途之一。如果您没有使用wordpress这样的平台(您应该这样做,因为为什么要重新发明轮子?),那么您将构建不变的元素(如页眉和页脚),然后使用调用它们来构建页面。然后最好将所有内容存储在数据库中,并调用内容。。。但是正如前面提到的,有一百万个框架可以实现这一点,其中一个叫做“谢谢你的建议”。不幸的是,如果我只是想点击几个按钮,创建一个与wordpress相关的网站,我早就这样做了。更确切地说,我只是想扩展我的编码知识,我想通过StackOverflow来寻找如何做到这一点的建议,StackOverflow就是为了做到这一点而设计的。不过,再次感谢您至少发表评论。@Josh我们可能看起来很无情,但博客不是小孩子玩的游戏。当你编写博客时,你刚才问的问题不应该存在。你应该知道PHP是如何工作的,包括,模板,替换字符串,正则表达式等等。还将动态地址转换为表示post的数据库表行。。。诸如此类。我甚至没有触及表面…使用worpress,简单且最好。