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

2016-02-19 16:18 6 1 收藏

关注图老师设计创意栏目可以让大家能更好的了解电脑,知道有关于电脑的更多有趣教程,今天给大家分享Linux操作系统中用PHP构建网站详解教程,希望对大家能有一点小小的帮助。

【 tulaoshi.com - Web开发 】

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

  新闻系统可分为三大部分:管理员登入系统,新闻管理系统,用户浏览系统。整个过程是简单的:

  1、管理人员发布新闻--数据库--用户浏览新闻

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

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

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

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

  1、首先是新闻的发布

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

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

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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  这是 php+mysql 知识的基本运用,实现这些功能并无困难,这里不作过多的介绍,只是要注意的是更改或删除一个分类时,该如何处理该分类下的信息本体呢?由于使用表关联,处理这些功能如同是在一个表内处理一般。

  3、多工处理

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

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

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

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

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

  给出的关键字可能在信息内容的任何位置,引擎又是如何进行查找的呢?在这要用到如下的数据库语句:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)
     select * from table where (name like '%".$keyword."%');

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

  在数据表 news 查找包含关键字 good 的所有标题:

     select * from news where (title like '%good%');

  这是个精确查找,能够在数据库内找出所有带 good 的 title 出来,还有一种模糊查找:

    select * from news where (title like '%good');

  这样也可查找出结果。

  假设 news 里包含 title(标题),message(内容),user(用户) 等的字段,上面的查找范围就太狭窄了,因为只对 title 进行了查找,要对其它内容进行查找又不想操作太复杂该如何处理呢?

  我们注意到在程序里任何变动的值都用变量来进行处理,在这这个方法一样行得通,可将想要搜索的范围作为变量进行传送,这样就有如下的数据库语法了:

    mysql_query("select * from news where ($name like '%".$keyword。"%'));

  $name 存放的就是传送过来的字段变量的值,而这种可变的值通过 html 的 select 下拉提交表单来完成。如果想要将搜索结果限制在一定的时间范围内又该如何实现呢?如想要查找 5 天之内的信息。还记得曾在 cookie 介绍中用到的数据库语法吗?

  对了,该联合的语法如下:

    mysql_query("select * from news where ($name like   '%".$keyword。"%') and timedate_sub('$time',interval 5 day)");  

  其中 $time 为查找的现在时间:$time=date('Y-m-d H:i:s'); time 是数据库存储信息时间的字段。现在将 $old 来代替 5:

    mysql_query("select * from news where ($name like   '%".$keyword。"%') and timedate_sub('$time',interval $old day)");  

  同样 $old 的值通过 select 提交表单将限定的不同时间提交过来,便完成了这个颇为强大的搜索引擎。一些更为强大的搜索引擎需要程序技巧上的配合,读者可通过以上的原理自行扩展试验。

来源:http://www.tulaoshi.com/n/20160219/1611628.html

延伸阅读
  我们以前介绍了通过优化配置桌面环境来提高系统速度的方法,其实在其他的一些方面,我们一样可以精心配置来提高系统速度。 一、提升硬盘和光驱的数据传输性能 我们可以使用命令“hdparm 参数 设备”(如果是普通用户,需要在“hdparm”前面加上路径“/sbin/”)来查看存储器当前工作在什么样的传输模式下。例如要查看硬...
作者: 阿瑟瑞德 一 Linux简介 1.1 Linux的缘起--UNIX&GNU 1969年诞生于AT&T贝尔实验室的UNIX,至今已派生了二十多个分支,成为世界上影响最大、应用最广泛的操作系统。早期UNIX系统是源代码公开,具有详细文档并被大多数学校广泛研究的。从版本7开始,AT&T将UNIX商业化,并更换了许可协议。 为...
标签: 电脑入门
1.引言 由于PL/SQL不能用来开发面向普通用户的应用程序,必须借助其他语言或开发工具。 在Linux操作系统下应该用什么语言或开发工具来进行Oracle数据库应用的开发呢?本文将介绍2种方案:Pro*C、JDBC。而另一种SQLJ方法,限于篇幅省略。 2. 环境设置 2.1 软件环境 本文的实验环境是在Red Hat Linux 8.0操作系统下,因为Oracle 9i要...
标签: Web开发
使用CSS3可以为你的网站创建多列,而不用为每列制定特定的层或段落。 上一篇文章:CSS3教程(5):网页背景图片 与多背景图片一样,CSS3多列也是我最喜爱的一个技术。我想这条CSS3属性有在报纸和杂志布局中以外的很多潜在的用途。如果你在某个想法或个人网站中使用了这种方法,请在下面的评论中提交你的链接,我很高兴能确认这种方法能用于很...
传真是企业中的常规应用,许多商贸往来的信息交换都需要利用传真来完成,但是却不可能为每个人配备一台传真机。用Linux系统可以建立一个人人都可以使用的传真服务器系统。 条件: 1、Linux操作系统 2、efax服务器 3、支持1、2类传真的调制解调器 安装好的RedHat 6操作系统中已经完整地配置好了传真系统,关键是将...

经验教程

487

收藏

82
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部