基于PHP技术的学院网站建设——以厦门海洋职业技术学院某系网站为例
2010-03-21饶如炎
饶如炎
基于PHP技术的学院网站建设——以厦门海洋职业技术学院某系网站为例
饶如炎
(厦门海洋职业技术学院,福建 厦门 361102)
在学院网站建设实践的基础上,分析了ASP与PHP两种技术在校园网站建设中存在的优缺点,设计了基于PHP的网站建设技术、数据库设计技术、网页制作技术及网站安全等方面相结合的学院网站设罝结构,并根据相关实验数据预计今后要继续解决的问题和改善的方向。
网站建设;设计结构;PHP;ASP;MVC
1 引言
随着计算机与互联网技术的迅猛发展,在Internet上发布信息已经成为人们获取信息的关键渠道,网站以其快捷、无距离和互动性等特点在众多媒体中脱颖而出,正在成为政府、学校、企业和社会团体等进行信息发布、形象展示、业务拓展、客户服务、内部沟通等的重要阵地。以“信息网络推动校园文化及校园文化建设”日益成为院校教育教学改革的中心和重点,学院网站不仅是学院对外宣传的重要窗口,同时也是学院教学与科研的重要平台。各大院校都建设有学校门户网站、各行政职能部门网站、各二级学院网站及各系部网站等信息化办公平台,来满足日常教学、信息发布及校园文化宣传等多种需求。系部网站的建设在很大程度上体现了一个高校信息化建设的水平,是学校实施信息化教学的强力支撑[1]。
本文以厦门海洋职业技术学院某系部网站建设过程为例,在分析ASP和PHP两种技术优缺点的基础上,着重讨论基于PHP的网站建设技术、数据库设计技术、网页制作技术及网站安全等方面的问题。
2 ASP与PHP的比较
ASP和PHP都是动态网站的开发技术,但它们之间在理论基础与开发实践上却存在着巨大的差别。在着手开发之前,对ASP和PHP进行了深入的分析,现将二者的差异及优缺点比较如下。
2.1 开发平台方面
ASP开发的程序不具备跨平台性,一般情况下只能运行于微软的服务器之上,在Unix和Linux等其它服务器上运行是比较困难的。
PHP则具有良好的跨平台性,能够得到IIS和Apache等WEB服务器的支持,广泛地运行中Windows、Unix和Linux等各种系统之上。
2.2 开发语言方面
ASP在程序开发时主要使用VBScript和JavaScript两种脚本语言进行编写,ASP网站的开发可以用微软的Dreamweaver,作为嵌入在HTML中的服务器编程语言。当客户端请求网页时,ASP文件先由服务器端解释执行,再将执行结果以HTML形式返回到客户端浏览器显示。
PHP大量借用了C、JAVA和Perl语言的语法,并综合了C、JAVA和Perl语言的的精华,同时也结合自己的特性进行编写,PHP的开发工具用Dreamweaver、Zend Studio、phped等。当访问者浏览到该页面时,服务器端PHP语言引擎会首先对页面中的PHP命令进行处理,然后把处理后的结果连同HTML内容一起返回给访问端的浏览器。
2.3 数据库连接方面
ASP常用的数据库有ACCESS和SQL,一般的虚拟主机用户或者小站点用户都是用ACCESS作为自己的站点数据库,大型的站点一般都是用SQL。ASP连接数据库时,一般都是使用ODBC通过ADO进行连接,连接方式较为单一。
PHP有十分强大的数据库操作功能,可直接连接多种数据库,目前应用最广泛的是PHP与MySQL的组合。PHP提供的数据库接口支持不统一,比如对Oracle、MySQL、Sybase等的接口彼此都不一样。
2.4 安全性方面
由于大多数ASP程序都要借助IIS才能运行,而IIS本身就存在漏洞,是黑客们攻击的主要目标,严重威胁到了ASP网站的安全。
PHP运行在Apache上,Apache开放源代码一般不存在系统漏洞,拥有很好的安全性,同时Unix和Linux等运行平台安全漏洞较少,因而PHP在安全性方面具有很大的优势,是目前为止,公认安全性最好的一种技术[2]。
2.5 小结
(1)ASP技术的优势与不足
ASP的优势可概括为:安装简单、容易上手、辅助工具多样化、效率高。由于ASP是Microsoft公司的产品,所以在调试环境安装、脚本编写、辅助工具等方面都有很好的支持和更广泛的技术参考资料。
ASP技术的不足之处在于:Windows本身的特别是IIS组件的漏洞都会一成不变地累加到ASP身上,所以ASP开发的程序,其安全性、稳定性和跨平台性都会因为与NT的捆绑而显现出来。
(2)PHP技术的优势与不足
PHP技术的优势在于它能快速学习、跨平台、有良好的数据库开发能力,语法简单,书写容易。PHP提供了标准的数据库接口,数据库连接方面,有较强的兼容性和可扩展性,可以进行面向对象编程。同时,与Apache及其他扩展库结合紧密,极有效地利用了Apache高性能的吞吐能力。
不足之处在于:PHP的所有扩展接口都是由独立的团队开发完成的,因而为了让应用支持更多的数据库,需要开发人员将同样的数据库操作使用不同的代码写出很多种代码库来,让程序员的工作量大大增加。此外,PHP环境安装比较复杂,由于缺少企业级的支持和正规的商业支持,所以也无法实现商业化应用的开发。
3 PHP+MySQL+Apache组合
通过学习,了解到对于比较大型的网站,诸如对事务处理和负载均衡要求较高的站点,采用ASP和JSP的比较多,而从成本考虑,比较经济的站点采用PHP可能是最好的选择。因此,出于经济、安全、高效及可扩展性等方面考虑,拟采用PHP+MySQL+Apache的黄金组合,着手开发与建设网站。
3.1 网站栏目设计
根据网站的定位及建设目标,学院下属系部作为相对独立的机构,在网站建设方面除了要兼顾学院门户网站的主要功能外,还需要保持其自身特色之处,如相对详细的网站首页、系部简介、通知公告栏等[3]。本网站针对学院的定位及发展目标,设立以下10个栏目:
网站首页:本网站的首页页面。
本系新闻:本栏目以动态内容为主,主要介绍本系部最新资讯文章、相关新闻动态及通知公告等。
本系概况:本栏目以静态内容为主,主要介绍本系部简介、组织结构、师资力量等。
党团建设:本栏目以动态内容和静态内容相结合,分别介绍本系部党建工作、组织结构、规章制度、党员发展、组织生活、学习实践及活动掠影等党建工作,以及本系部团学工作、学工动态、共青团工作、学生日产管理及心理咨询等团学工作。
学生风采:本栏目以动态内容为主,主要介绍本系部学生组织的各项活动,包括团日活动、文体活动、主题班会等。
教学教研:本栏目以动态内容和静态内容相结合,主要介绍本系部教学科研工作、精品课程设计、实验室建设、专业建设及教学管理等。
教研室:本栏目以静态内容为主,主要介绍本系部各教研室相关专业,包括各专业培养目标、人才培养基本规格要求与职业能力、毕业规定及主干课程与主要实践实训环节等。
招生就业:本栏目以动态内容为主,主要介绍招生就业情况、招生主题及就业之窗等。
培训考证:本栏目以静态内容为主,内容包括各专业培训、考证要求等相关信息。
下载空间:本栏目以动态内容为主,内容包括最新下载资料等。
3.2 系统功能模块
根据实际需求,对各项功能进行集中、分块,按照结构化程序设计的要求,得到如图1所示的系统功能模块图,为了更快速高效的开发出站点,网站采用MVC模式进行设计开发。
图1 系统功能模块图
图2 MVC开发模式
3.3 MVC开发模式及其实现
3.3.1 MVC开发模式
网站开发是一个系统工程,主要需要三方面的人员进行紧密配合,设计人员使用Photoshop设计界面;前台开发人员,把设计图切图,转换为HTML语言;服务器端程序开发人员开发服务器端程序。传统的网站开发,是设计人员先设计好界面,设计完毕后,由前台开发人员进行切图写HTML页面,最后才是服务器端程序人员把PHP代码嵌套在HTML页面中。采用传统方式开发网站,开发周期长,开发人员之间需互相等待对方进度;代码冗长,且可读性差,维护难。为了加快开发进度,提高开发效率,适应网站后期的界面改版和程序升级需要,网站采用了流行的MVC开发模式,网站整体分为数据层(M)、视图层(V)、控制层(C)进行设计。数据层专注于服务器端程序对数据库的访问和操作,视图层采用“模板”技术,对每个页面设计独立于服务器端程序的模板。控制层根据实际需要,控制视图层的显示。MVC开发模式如图2所示。
3.3.2 数据层M的实现
数据层主要是对数据库的访问和操作,并返回操作的结果。程序可以简写为如下函数部分,其中$sql为数据库SQL语句,$result为执行结果数组:
function getModelData($sql)
{
$result = array();
$source = mysql_query($sql);
while($row = mysql_fetch_array($source))
{
$result[] = $row;
}
return $result;
}
3.3.3 视图层V的实现
3.3.4 控制层C的实现
控制层C通过客户端传递的参数,进行判断获取具体的数据层提供的数据M和调用视图层V,获取视图层V后,使用替换函数str_replace()把模板中的特殊关键字,如{title}替换为具体的内容。程序可以简写为:
$sql=”select * from 表名”;
$result=getModelData($sql);
//读入模板文件 index.tpl
$file=fopen(“index.tpl”,”r”);
$tpl_content = fread($file, filesize (“index.tpl”));
//使用str_replace()替换模板中的特殊关键字
$content = str_replace(“{title}”, $result[0][“title”], $tpl_content);
$content. = str_replace(“{…}”, $result[0][“..”], $tpl_content);
……….
echo $content; //输出内容至客户端
MVC开发模式的优势在于,参与网站设计的三方面人员可以独立工作,且互不干扰,不存在互相等待对方完成任务而产生怠工现象。同时,在该模式中,数据层、控制层和视图层三层独立,逻辑结构清晰,有利于程序的维护和升级,特别是在对网站界面进行改版时,可以维持数据层和控制层的内容不变,只需修改视图层即可。
3.4 数据库设计及数据访问
数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整性和一致行。同时,合理的数据库结构也将有利于程序的实现。一个好的数据库应满足一些严格的约束和要求,要尽量分离各实体对应的表,一个实体对应一张表,搞清楚该有哪些属性,对应有些什么字段,以及各实体之间有何种联系。实体、属性和联系是进行概念设计时要考虑的三个元素,也是一个好的数据库设计的核心。
3.4.1 数据库设计
设计数据库系统时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。在仔细分析调查有关学院网站需要的基础上,针对一般学院系部网站设计的需求,在MySQL数据库系统中设计如下所示的数据项和数据结构:
(1)管理员信息,包括数据项:用户名、密码、权限、拥有管理权的栏目、拥有审核权的栏目、拥有添加权的栏目等。
(2)普通用户信息,包括数据项:用户名、密码、权限、最后登录IP、最后登录时间、最后退出时间、登录次数等。
(3)文章信息,包括数据项:所属栏目、文章标题、标题颜色、标题字型、完整标题、关键字、作者、来源、编辑、更新时间等、评分等级、点击数、下载次数、阅读点数等。
(4)图片信息,包括数据项:图片编号、所属栏目、图片名称、标题颜色、标题字型、关键字、录入时间、图片评分等级、点击次数、查看等级、查看点数等。
3.4.2 数据库访问设计
在PHP中,为了使用mysql函数库访问MySQL数据库,需要在PHP的配置文件php.ini中将“;extension=php_mysql.dll”修改为“extension=php_mysql.dll”(即删掉该选项前面的注释符号“;”),然后再重新启动Web服务器(如Apache等)[4]。
在PHP中,可以使用mysql_connect()函数,建立与MySQL数据库服务器的连接,其语法格式为:
mysql_connect([server[,username[,password]]])
在PHP中,要选中某个MySQL数据库,可以使用mysql_select_db()函数,其语法格式为:
mysql_select_db(database_name[,link_identifier])
选中某个数据库后,即可对该数据库执行各种具体的操作,如记录的检索,增加、修改与删除以及表的创建与删除等。对数据库的各种操作,都是通过提交并执行相应的SQL语句来实现的。在PHP中,使用mysql_query()函数提交并执行SQL语句,其语法格式为:
mysql_query(query_statement[,link_identifier])
3.5 系统集成
在开发本网站的过程中,笔者采用软件工程中结构化程序设计的方法及要求,按以下步骤进行系统集成,如图3所示。
图3 系统集成框架
4 结束语
网站建设是一项系统工程,通过系统地学习和了解网站的构建过程,考虑到经济性、安全性和可扩展性等,本文选择PHP+MySQL+Apache进行开发,这些软件工具简单实用,容易学习,共享开源,实践表明:此次网站设计具有一定的实用性、可行性和可操作性,满足广大用户的需求。
在后期的网站中,要根据学院的教学和管理要求,及时更新数据,并进一步做好网站安全工作,使其发挥更大的作用。
[1] 冯英健.网站营销基础与实践[M].北京:清华大学出版社,2004,第二版.
[2] 杜闯.PHP在动态网站开发中的优势[J].电脑知识与技术,2010,6(13):3342-3344.
[3] 李神速,荣祺,陈昌辉.关于学院网站建设若干问题的探讨[J].上海:上海应用技术学院学报,2006,6(1):44-48.
[4] 徐辉,卢守东,蒋曹清.PHP Web程序设计教程与实验[M].北京:清华大学出版社,2008:189-192.
College Website Construction Based on PHP Technology
RAO Ru-yan
(Xiamen Ocean Vocational College,Fujian 361102,China)
On the basis of the practical construction of college website, this article analyses the advantages and disadvantages of ASP and PHP technologies in the construction of college website, puts forward a comprehensive design solution to college website construction based on the PHP website construction technology, the database design technology, the web pages construction technology and the website security and predicts on the basis of relevant experimental findings the problems to be solved in the future with some improvement suggestions.
Website Construction; Structural Design; PHP; ASP; MVC
2010-09-10
饶如炎(1983-),男,福建龙岩人,助理实验师,研究方向:计算机应用技术、网络管理。
TP393.18
A
1673-1417(2010)04-0010-05