Home  >  Article  >  php教程  >  Linux操作系统中用PHP构建网站详解

Linux操作系统中用PHP构建网站详解

WBOY
WBOYOriginal
2016-06-13 10:32:171148browse

  如何架设一个新闻系统呢?一个完整的新闻系统不仅仅只包括供浏览的新闻界面,它还包括许多功能的控制和后台管理的强劲功能。那么这些功能内的子功能又如何调度分配呢?下面就来介绍一下各功能的调配控制。新闻系统的实现是简单的,但也可以说是非常复杂的。

  新闻系统可分为三大部分:管理员登入系统,新闻管理系统,用户浏览系统。整个过程是简单的:
  1、管理人员发布新闻-->数据库-->用户浏览新闻

  2、发现问题-->登入管理系统-->编辑修改新闻

  以上流程看似简单,但实现起来却并不是那么简单,这是个系统的开发,远比留言版的实现要复杂,但基本运作原理又与留言版相同。在新闻发布系统的重中之重又在于数据库的规划和管理系统的实现。

  现在来新闻都有些什么内容:新闻分类,信息本体。在数据库包函这两项内容于一个数据表内是可以实现的,但不经济,因此我们可用两个数据表来分别存储内容,一个专门存储新闻的分类,而另一个用来存储信息的本体。如何调用实现双表内容的共享呢?运用表关联来实现这个问题(这里并不介绍这方面的知识,读者可自行参考数据库相关的知识内容,靠自己努力得来的知识最有价值,不是吗?)

  下面要介绍的是管理功能的实现:

  1、首先是新闻的发布

  这是一系列的提交表单共同组成的,而这里又分两类,创建新闻分类和发布新闻;创建完新闻分类,然后再在各个分类中发布相关的新闻,很简单嘛!并不是这样的,想想所有的信息本体全都集中在一个数据表里,如何区分信息的分类,上面提到的表关联在这就非常重要了,当然也可不用这种方法,为每个分类创建一个独立的表也能解决问题,可是这样划算吗?维护性和可扩展性有如何呢?

  新闻分类和信息本体的相关调用引起了麻烦,对了,解决之道就是活用表关联。

  2、编辑,修改,删除的问题

  这是 php(做为现在的主流开发语言)+MySQL(和PHP搭配之最佳组合) 知识的基本运用,实现这些功能并无困难,这里不作过多的介绍,只是要注意的是更改或删除一个分类时,该如何处理该分类下的信息本体呢?由于使用表关联,处理这些功能如同是在一个表内处理一般。

  3、多工处理

  但许多人在同时编辑一条新闻时会出现什么情况呢?情况就数据库只会存储最后编辑的内容,这种情况发生将意味着前面修改的人的辛苦白费了,多功处理就是解决这个问题的,采取的方法是先入为主的,即先进入编辑的拥有编辑权限,而后进入的只拥有浏览的权限直到编辑完成为止。这个功能很象 linux 的权限控制,不是吗?

  完成这个功能可用几种方法:1。用 cookie 来控制,2。在表内增加权控字段。当然用 cookie 更加简单些,cookie 实现的方法和流程是这样的:

  当有管理员进入编辑,设置 cookie ,编辑功能的程序段则判断 cookie 值,为空允许编辑,非空则拒绝编辑,退出编辑时则将 cookie 清空,如此循环往复;多工功能是个有效的功能,至少能减少时间上和人力上的浪费。

  新闻浏览功能的实现很简单,加上翻页功能(本站已经介绍过了),强大的新闻系统基本完成,似乎少了个很重要的功能,不错就是搜索引擎。能够拥有强大的搜索引擎是每个网站的心愿,而一个强大的搜索引擎的制作又是相当复杂和困难的,它涉及到效率,准确性和速度等诸多方面。

  这里介绍的搜索引擎不会涉及到这么深的研究,只是针对特定的内容进行精确的查询。一个功能复杂而强大的搜索引擎要用到很多的程序和数据库技巧,我们就先从简单的搜索引擎开始介绍。搜索引擎的工作状况是怎样的呢?它接收给出的关键字,然后在给出的范围内进行搜索,然后将搜索的结果返回。
  给出的关键字可能在信息内容的任何位置,引擎又是如何进行查找的呢?在这要用到如下的数据库语句:


   
  select * from table where (name like %".$keyword."%);

  name 是查找的具体位置,一般放字段名,like %".$keyword。"% 是模式匹配,就是在内容中查找有无 $keyword。看个例子:

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn