动态加载数据库中的博客帖子

时间:2016-09-25 09:34:02

标签: php html mysql sql database

我确定我做错了,并且有更好的方法。

我刚刚完成了一个美食博客网站。帖子被上传到数据库中。当需要时,使用SELECT语句中的信息生成HTML文件。

基本上,我并不认为创建新的HTML文件并以这种方式存储页面是明智的,而是在运行中创建它们。

这是我(可怕)的方法:

  1. 用户点击链接或输入网址

  2. 网址结构如下:www.website.com/name-of-post

  3. 没有名为name-of-post.php的HTML文件,因此重定向时出现404错误。

  4. 在该页面上,我会查看帖子的名称是否'存在于数据库中。

  5. 如果是,请生成文件。否则,显示404错误页面。

  6. 这种方法也意味着这些页面没有被谷歌索引,因此人们将无法以这种方式搜索食谱。

    我知道这不对。那么有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

嗯,你刚刚发现了PHP 20年前发明的原因。它是一个模板引擎,可让您动态生成网页

在数据库中存储内容通常很好。大多数内容只是数据。但是,使用该内容构建网页是完全不同的事情。既不需要在文件系统上生成实际的.html文件,也不需要在数据库中存储.html文件(完整地)。

templating in PHP的概念是您创建与内容分开的格式,以便始终可以更改格式,并且无论如何都可以插入内容。

例如,这是一个非常简单的模板。

<h1>Hello <?=$name?></h1>
<p>Today is <?=date('l F jS, Y')?>.</p>

无论内容如何,​​此页面的格式始终相同,这些变量是我们可以轻松地从数据库插入模板的变量。你的问题也不例外。您可以存储模板,编写为简单的HTML和PHP代码,只需插入内容和一些变量(可能由数据库中的数据填充)。

动态创建URL的概念相对类似。您可以告诉您的Web服务器将所有请求重定向到主要PHP脚本(通常称为front-controller),如index.php,并让该脚本检查数据库中的请求URI(使用类似{{{{ 1}},例如)并根据该信息,您可以从数据库中提取所需的内容,使用模板生成输出,然后输出客户端的页面。