php - 从数据库动态加载博客文章

标签 php html mysql sql database

我确信我做错了,并且有更好的方法来做到这一点。

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

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

这是我的(糟糕的)方法:

  1. 用户点击链接或输入 URL

  2. URL 的结构如下:www.website.com/name-of-post

  3. 没有名为 name-of-post.php 的 HTML 文件,因此它会重定向并显示 404 错误。

  4. 在该页面上,我检查数据库中是否存在“帖子名称”。

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

此方法还意味着这些页面不会被 Google 索引,因此人们将无法通过这种方式搜索菜谱。

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

最佳答案

好吧,您刚刚发现了 20 年前发明 PHP 的原因。它是一个模板引擎,允许您动态生成网页

将内容存储在数据库中通常没问题。大多数内容只是数据。然而,使用该内容构建网页是完全不同的事情。不需要在文件系统上生成实际的 .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(使用类似 $ 的内容)例如,_SERVER['REQUEST_URI']),并根据该信息,您可以从数据库中提取所需的内容,使用模板生成输出,然后为客户端提供页面。

关于php - 从数据库动态加载博客文章,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39685382/

相关文章:

php - jquery自动完成返回数据

php - esc_html 的使用有多重要以及何时应该使用它?

html - 如何让这些按钮内联?

javascript - Windows 10,资源解释为样式表但使用 MIME 类型应用程序/八位字节流传输

php - 在我的表 : It shows one record less 中显示记录时出错

php - Jquery XMLHttpRequest 不调用 url

php - Django 为同一模型创建不同的表

javascript - 表情符号、带有原始文本的文本区域和带有替换图标的文本字段

php - 检索 php session 值之后用作变量?

mysql - 使用 DATETIME 列上的 ORDER BY 优化查询