如何组织PHP博客

如何组织PHP博客,php,database-design,blogs,Php,Database Design,Blogs,因此,目前我正在根据文件名组织我的博客:要创建一篇文章,我需要输入文件名。与将帖子存储在数据库中不同,我将它们存储在PHP文件中。因此,每次我创建帖子时,都会在表中创建一个新行,其中包含文件名和唯一ID。要引用帖子(例如,评论),我会获取当前文件的名称,然后在entries表中搜索匹配的文件名。评论的帖子ID与该帖子的ID匹配 显然,这不是组织博客的标准方式,但我这样做有几个原因: 干净的URL(甚至比我读到的mod_rewrite提供的更干净) 我的机器上总是有一份这篇文章的硬拷贝 更容易记

因此,目前我正在根据文件名组织我的博客:要创建一篇文章,我需要输入文件名。与将帖子存储在数据库中不同,我将它们存储在PHP文件中。因此,每次我创建帖子时,都会在表中创建一个新行,其中包含文件名和唯一ID。要引用帖子(例如,评论),我会获取当前文件的名称,然后在entries表中搜索匹配的文件名。评论的帖子ID与该帖子的ID匹配

显然,这不是组织博客的标准方式,但我这样做有几个原因:

  • 干净的URL(甚至比我读到的mod_rewrite提供的更干净)
  • 我的机器上总是有一份这篇文章的硬拷贝
  • 更容易记住特定帖子的URL(有点像干净URL的一部分)
现在我知道标准的方法是将每个帖子存储在数据库中。我知道如何做到这一点,但干净的URL是主要问题。那么现在我的问题是:

  • 我现在做这件事的方式有什么问题吗,或者将来可能会出现什么问题吗
  • 我现在可以用mod_rewrite获得相同级别的干净URL吗?如果是这样的话,请链接
  • 我将在一个网络主机上托管这个。是否只有某些web主机提供对mod_rewrite所需文件的访问,还是所有web主机上都是标准的
非常感谢各位


顺便说一句,我不打算使用博客引擎。

你所描述的是如何工作的。您需要讨论的问题包括:

  • 联合:RSS/Atom
  • 网站地图:谷歌
  • 评论;及
  • 标记和过滤内容

不使用数据库并非不合理。如果我这样做,我会使用像Smarty这样的模板引擎,它在缓存结果方面比PHP开箱即用的做得更好。

您所描述的有点像是如何工作的。您需要讨论的问题包括:

  • 联合:RSS/Atom
  • 网站地图:谷歌
  • 评论;及
  • 标记和过滤内容

不使用数据库并非不合理。如果我要这样做,我会使用像Smarty这样的模板引擎,它在缓存结果方面比PHP开箱即用的要好。

正如cletus所说,这类似于Movable Type。将数据存储在文件中本身并没有什么问题

我想到的一件事是:您在文件中存储了多少?只是文章内容,还是每个PHP文件都包含页面整个设计的副本,而不是使用基本模板?以后更改设计有多困难?这可能是问题,也可能不是问题

在干净的URL方面,您到底在寻找什么?重写规则非常强大和灵活。通过将mod_rewrite与响应所有请求的主PHP文件结合使用,您几乎可以拥有您想要的任何URL格式,包括没有模糊ID号甚至文件扩展名的用户友好URL

编辑:

下面是如何使用mod_rewrite和处理请求的主PHP文件:

  • Web服务器将所有请求(例如,/my post title)传递到index.php
  • php解析请求路径(“我的帖子标题”)
  • 在数据库的“slug”或“friendly name”(无论您想叫什么)列中查找“my post title”,并通过这种方式找到相应的行
  • 从数据库中检索帖子
  • 将模板应用于post数据
  • 将完成的页面返回给客户端
  • 这就是Drupal和WordPress等系统的工作原理

    另外,关于Movable Type的工作原理,我已经有一段时间没有使用它了,所以我可能是错的,但我相信它将所有帖子都存储在数据库中。当您点击publish按钮时,它通过从数据库中提取post数据并将其插入模板来生成纯HTML文件。当你的网站负载过重时,这是非常有效的——当访问者打开你的网站时,没有脚本运行,当服务器只需要提供静态文件时,它可以跟上高访问量


    因此,很明显,在确定解决方案的工作方式时,您有很多选择。你提出的建议听起来不错,不过你可能需要仔细考虑如何在单个文件中维护大量帖子,特别是如果你以后想更改整个网站的设计。例如,您可能需要考虑像SMARTY这样的模板引擎,只是将POST数据(没有布局标签)存储在您的单个文件中。或者只是在post文件中使用一些基本的include()语句来插入页眉、页脚、导航菜单等。

    正如克莱特斯所说,这类似于Movable Type。将数据存储在文件中本身并没有什么问题

    我想到的一件事是:您在文件中存储了多少?只是文章内容,还是每个PHP文件都包含页面整个设计的副本,而不是使用基本模板?以后更改设计有多困难?这可能是问题,也可能不是问题

    在干净的URL方面,您到底在寻找什么?重写规则非常强大和灵活。通过将mod_rewrite与响应所有请求的主PHP文件结合使用,您几乎可以拥有您想要的任何URL格式,包括没有模糊ID号甚至文件扩展名的用户友好URL

    编辑:

    下面是如何使用mod_rewrite和处理请求的主PHP文件:

  • Web服务器将所有请求(例如,/my post title)传递到index.php
  • php解析请求路径(“我的帖子标题”)
  • 在数据库的“slug”或“friendly name”(随便你怎么称呼)列中查找“my post title”,并找到合适的名称