一个PHP做的博客

读完《PHP6与MySQL5基础教程》之后就开始做一个简单的博客,既可以练习所学,又可以在练习的过程中解决新的问题。名字就叫brieflog,但是功能都是参照自己的Wordpress博客设计的。虽然功能、样式能有很多不足,不过先把所学的总结一下。

首页截图

1948369788891271720

包含文件

通过简单的包含,就不用重复写header,sidebar,footer了,这是静态网页永远实现不了的。CSS的任务就是为header,sidebar,footer,content及其内容设计样式。

输出内容

无论是文章列表、文章全文,还是目录列表、用户列表等,都是一个SELECT查询,查询条件各种各样。扩展到其他系统,如电商的商品列表、订单列表,图库的图片列表,论坛的贴子列表等也都是输出内容。

至于查询条件,通过URL追加信息或隐藏表单的值传递。

用户登录模块

几乎所有的页面包含登录或退出,所以得单独一个模块。有个要求就是:不必在一个单独的登录页面登录,且登录之后还是在之前浏览的页面。用Ajax实现可能更好,不过自己用的是在登录模块加个判断语句,根据是否登录来显示登录表单。

文章编辑器

自己写一个编辑器太复杂,且兼容性、功能都无法与已有的相比。好吧!实际情况是目前还写不出来,所以选用现有的,比如TinyMCE。即使选用现有的也花了一两天时间来学习如何配置。目前还没有在IE6中配置成功。

评论功能

之前没想到评论功能居然会成为最难实现的一个功能,本质上评论和论坛的帖子一样。考虑到每个评论都可以被回复,从而形成嵌套评论。在输出评论列表时,需要查看已输出的评论是否有回复评论。自己通过一个递归查询来实现,应该还有更好的评论存储采用的数据结构和评论输出算法。

评论的HTML结构及CSS样式设置花了点时间。

在点击回复按钮时,评论表单能出现在下方的功能,通过JS实现。

上线

从本地转移到网络空间上,要考虑数据库链接文件和配置文件的相关信息更新,比如数据库名、用户名、文件路径等。

需要改进的地方

很多:

  • PHP与HTML的分离,Smarty模版的学习。
  • 面向对象式的PHP
  • CSS代码的优化
  • 细节的完善
  • 伪静态
  • 等等