您好,欢迎来到刀刀网。
搜索
您的当前位置:首页5-25-2-09网络工程1班0908324036_房亚飞论文3_

5-25-2-09网络工程1班0908324036_房亚飞论文3_

来源:刀刀网
 河南师范大学 学号: 1308324036 本科毕业论文

基于PHP和SMARTY技术实现静态页面转换

技术分析

学院名称: 计算机科学与信息技术学院 专业名称: 网络工程 年级班别: 13级网络工程1班 姓 名: XXOO 指导教师: XXXX

2013年05月

河南师范大学本科毕业设计

基于PHP和SMARTY技术实现静态页面转换技术分析

摘 要 如今互联网进入高速信息化时代,网页内容逐渐丰富起来,展示的不光有文字资料,图片资料,音频视频资料也越来越多的展现在用户的网页中,这样一来势必会增加网站打开的时间;如果同一时间访问量较大,对数据库频繁的操作,也会增加服务器的负载;而且在浩瀚如星空的网络上相同题材的网页数不胜数,怎么能让别人轻易精准的找到你的网站呢,这就要针对搜索引擎优化了。那么既然提出了这样的一些问题,有没有一个好的方法来满足网络用户的这些需求呢,答案是肯定的。为了适应互联网的发展,页面静态化逐渐被网站使用者所重视。静态化的网页,不但访问速度快,而且容易被搜索引擎抓取,无需连接数据库,减轻服务器压力,网页更安全,不会出现网页漏洞,被注入的风险。基于这种初衷与想法,一种新的页面迫切的应用到网站中。接下来的这项技术就是把动态的网站页面通过后台的操作转换成静态页面,呈现在浏览者面前。

关键词 PHP ; SMARTY;搜索引擎; 静态化

Abstract Now entered the information age, Internet web content rich rise gradually, showing not only has written materials, images, audio and video data is also more and more show in the user's web page, so certainly will increase website open time; If traffic is bigger, at the same time to the operation of the database frequently, also will increase the load of the server; And on the vast starry sky as network web pages of the same subject matter, how can let others precision easily find your site, this is for search engine optimization (SEO). Since it was put forward some problems, then, is there a good way to meet these requirements, network users and the answer is yes. In order to adapt to the development of the Internet, page static gradually attention by web users. Static web pages, not only the access speed is quick, and easy to search engines crawl, without having to connect to the database, reduce the pressure of the server, the web is more safe, won't appear loophole, the risk on the injection. Based on the purpose and ideas, a new page pressing applied to site. Then this technology is to make dynamic web pages through the backstage operation into a static page, appear in front of the visitor.

Keywords PHP;SMARTY;SEO;Static

1

河南师范大学本科毕业设计

前 言

为什么要把动态网页以静态网页的形式发布呢?一个很重要的原因,就是因为搜索

引擎。由于搜索引擎对php页面收录和html页面收录率的差别以及页面资源占用问题,我们很多时候需要实现php页面动态转静态。以目前互联网上最普通的查找资料的方式看,互联网内容到达公众面前大致只有三条路:第一条路是通过众所周知的门户网站,老读者有意识地到达这些地方搜索相应的有针对性的资料;第二条路是做广告,通过公众使用一些免费服务的机会夹带资料信息,把公众带到目标网站;第三条路是搜索引擎,通过关键字和其他因素,把相应的信息推介到公众的面前。实际上,这也是带来新公众的最有效的途径;而对于绝大多数的站点,除了屈指可数的几个门户网站外,这种搜索引擎带来的读者公众,占了至少90%以上。

另一个重要原因就是提高程序性能。很多大型网站,进去的时候看它很复杂的页面,但是加载也没有耗费多长时间,除了其它必要原因以外,我认为静态化也是其中必需考虑的技术之一。她先于用户获取资源或数据库数据进而通过静态化处理,生成静态页面,所有人都访问这一个静态页面,而静态化处理的页面本身的访问速度要较动态页面快很多倍,因此程序性能会有大大的提升。总之静态化在页面上的体现为:访问速度加快,用户体验性明显提升;在后台体现为:访问脱离数据库,减轻了数据库访问压力。

1 绪论

1.1选题背景

当下互联网已成为人们生活中必不可少的一部分,无论是企业还是个人多倾向于有一个属于自己的网站。但正如大海中的沙子般,互联网上的网站多如牛毛,怎么能让浏览者在搜索时能准确又快速的搜索到自己的网站呢,这就涉及到网站的优化和用户体验的问题。动态页面能很好的实现用户与服务器之间的交互,但是在搜索引擎抓取时可能不如静态页面的效果好,而且当数据量很大的时候打开速度也会很慢,且对服务器的压力较大,所以,在这种情况下就诞生出了页面静态化和伪静态化技术。 1.2 问题的提出

如今互联网进入高速信息化时代,网页内容逐渐丰富起来,展示的不光有文字资料,图片资料,音频视频资料也越来越多的展现在用户的网页中,这样一来势必会增加网站打开的时间;如果同一时间访问量较大,对数据库频繁的操作,也会增加服务器的负载;而且在浩瀚如星空的网络上相同题材的网页数不胜数,怎么能让别人轻易精准的找到你的网站呢,这就要针对搜索引擎优化了。那么既然提出了这样的一些问题,有没有一个好的方

2

河南师范大学本科毕业设计

法来满足网络用户的这些需求呢,答案是肯定的。为了适应互联网的发展,页面静态化逐渐被网站使用者所重视。静态化的网页,不但访问速度快,而且容易被搜索引擎抓取,无需连接数据库,减轻服务器压力,网页更安全,不会出现网页漏洞,被注入。 1.3 系统开发的目标

本系统主要针对中小型企业网站用户。

通过事先设置好的管理员账号登陆后台,可设置网站的一些基本信息,如网站名称、域名、备案号、

网站LOGO、联系人、联系电话、电子邮件、关键词和描述等。

可通过栏目设置来添加网站所需栏目。根据网站常用类型分成 栏目封面、单页图文、文章列表、

图文列表、留言、照片、销售网络和友情链接这八个模型。

栏目封面主要就是网站的首页;

单页图文就是一篇单页,适用于公司简介,公司文化类的栏目; 文章列表主要用来发表一些新闻等的文章;

图文列表用来发表一些图片类信息,主要用于展示公司一些产品及其详细的参数介绍;

留言主要是让浏览者与网站管理者进行交互的页面,可记录浏览者留下的话语,管理员可以从后台查看;

招聘是根据企业需要,发布一些带有特定属性的文章;

销售网络主要用来展示地图,可以在地图上输入相应的联系方式,也可以设置为一个单页; 友情链接是为了增加网站被搜索引擎抓取而设置的,连接到其它网站页面的一些超级链接。 所有的栏目都可以进行增加内容,删除内容和修改内容的操作。而且每个页面都可以进行关键词和描述的填写。通过标签,在模板中调取即可在前台显示。

1.4开发语言简介 PHP语言

PHP,是英文超文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内

嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛地运用。[3]

PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。[4]

3

河南师范大学本科毕业设计

SMARTY技术

Smarty是一个使用PHP写出来的模板引擎,是目前业界最著名的PHP模板引擎之一。

它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目的就是要使PHP程序员同前端人员分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。[5] 优点

1. 速度:采用Smarty编写的程序可以获得最大速度的提高,这一点是相对于其它的模板引擎技术而言的。

2. 编译型:采用Smarty编写的程序在运行时要编译成一个非模板技术的PHP文件,这个文件采用了PHP与HTML混合的方式,在下一次访问模板时将WEB请求直接转换到这个文件中,而不再进行模板重新编译(在源程序没有改动的情况下)

3. 缓存技术:Smarty选用的一种缓存技术,它可以将用户最终看到的HTML文件缓存成一个静态的HTML页,当设定Smarty的cache属性为true时,在Smarty设定的cachetime期内将用户的WEB请求直接转换到这个静态的HTML文件中来,这相当于调用一个静态的HTML文件。

4. 插件技术:Smarty可以自定义插件。插件实际就是一些自定义的函数。 5. 模板中可以使用if/elseif/else/endif。在模板文件使用判断语句可以非常方便的对模板进行格式重排。

不适合使用Smarty的地方

需要实时更新的内容。例如像股票显示,它需要经常对数据进行更新,这类型的程序使用smarty会使模板处理速度变慢。

小项目。小项目因为项目简单而美工与程序员兼于一人的项目,使用Smarty会在一定程度上丧失PHP开发迅速的优点。

HTML Jquery Js Div+Css技术

这些都是做网页的一些基础知识,不再过多的描述

2 系统设计

2.1 系统分析

在整个网站进行开发之前,要确定出本系统的整体架构,包括系统的选型、运行环境

4

河南师范大学本科毕业设计

的确定及系统结构设计。下面将做详细介绍。

在进行软件系统开发的最初环节,一般都需要进行系统的选型,即根据系统功能的实际需求,选择合适的开发工具和服务器及软件架构。 2.1.1 服务器的选择

Web服务器是指驻留于因特网上某种类型计算机的程序。当Web浏览器(客户端)连

到服务器上并请求文件时,服务器将处理该请求并将文件发送到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。服务器使用HTTP(超文本传输协议)进行信息交流,这就是人们常把它们称为HTTPD服务器的原因。[1]

Web服务器不仅能够存储信息,还能在用户通过Web浏览器提供的信息的基础上运行脚本和程序。

大型的网站服务器很多。比如:Microsoft IIS:IIS是目前最流行的Web服务器之一,是微软的一个大型服务器。Apache:世界上很多著名的网站都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等。Tomcat:Tomcat是一个开放源代码、运行Servlet和JSP Web应用软件的基于Java的Web应用软件容器。

鉴于apache的跨平台效果较好且用户较多,因此此次设计系统选用的是apache作为服务器端。

2.1.2数据库的选择

数据库本系统选择MySOL数据库。原因:MySQL(发音为“my ess cue el”,不是“my sequel”)是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。

由于MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。在不需要事务化处理的情况下,MySQL是管理内容最好的选择。 故而本系统选择开源的MySQL数据库系统。

2.2 系统可行性分析

技术上的可行性分析要考虑将来要采用的硬件和软件技术能否满足用户(这里是服务

器,网速)提出的要求(例如计算机的容量、速度等)。此外,还要考虑开发人员的水平,学习了一年的PHP开发,对于这个系统的编写需要一个月就可以完成程序。另外还要有个调试的阶段,计划一个月左右完成系统的设计并实现系统的基本功能。[2]

5

河南师范大学本科毕业设计

通过在学校的学习掌握了数据库及其应用技术、数据库原理、计算机网络技术等课程;对数据库的设计、应用、维护及局域网的组成有了深刻的认识与一定的动手实践能力;学习了PHP等编程语言,以及对SNARTY框架有所了解,再加上进一步的钻研研究看,从一定程度上具备了开发一个小型静态网站系统的一些能力。因此从技术可行行上来说,小型静态网站系统还是基本上可以实现的,只是会有不足之处,还会继续努力学习,以弥补这方面的不足。

3.数据库设计

3.1 数据字典的定义

数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。[6]

数据库数据字典不仅是每个数据库的中心。而且对每个用户也是非常重要的信息。用户可以用SQL语句访问数据库数据字典。

数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。数据字典的组成:

(1) 数据项:数据项是最基本的数据元素,是有意义的最小数据单元,在数据字典中。定义数据项特性包括:数据项的名称、编号、别名和简述;数据项的长度;数据项的取值范围。

(2) 数据结构:数据项是不能分解的数据,而数据结构是可以进一步分解的数据包。 (3) 数据流:数据流由一个或一组固定的数据项组成。定义数据流时,不仅说明数据流的名称、组成,还应指明它的来源、去向和数据流量。

(4) 数据存储:数据存储在数据字典中只描述数据的逻辑存储结构,而不涉及它的物理组织。[7]

(5) 处理过程:处理逻辑的定义仅对数据流程图中最底层逻辑加以说明。 3.2网站中用到的几个主表介绍

6

河南师范大学本科毕业设计

栏目lanmu表 图片products表 主要使用的就这四张表,但是这个网站系统共有表18个,其它的像单页表、留言表、链接表等。 3.3 数据库的连接

数据库连接直接是通过实例化数据库对象[8] 7

文章表 基本信息配置表 河南师范大学本科毕业设计

private $link_id;

public function __construct($inc_sql){

$this->connect($inc_sql['dbhost'],$inc_sql['dbuser'],$inc_sql['dbpw'],$inc_sql['dbname']);

}

//连接数据库

public function connect($dbhost,$dbuser,$dbpw,$dbname){

$dblianjie = mysql_connect($dbhost,$dbuser,$dbpw); if (!$dblianjie){ }

if(mysql_select_db($dbname,$dblianjie)){ }

$this->link_id= mysql_select_db($dbname,$dblianjie); die(\"连接数据库失败\");

//$this->link_id = $pconnect == 0 ? mysql_connect($dbhost,$dbuser,$dbpw) : mysql_pconnect($dbhost,$dbuser,$dbpw);

}

//发送sql语句给mysql public function query($sql){ }

//从结果集中取出关联和索引数组

public function fetch_array($sql,$type=MYSQL_BOTH){

$resource = $this->query($sql); $i = 0;

while($row = @mysql_fetch_array($resource,$type)){ }

return $rt;

$this->free_result($resource);

8

return mysql_query($sql);

$rt[$i] = $row; $i++;

河南师范大学本科毕业设计

}

//从结果集中取出关联数组

public function fetch_assoc($sql){ $resource = $this->query($sql); $i=0;

while($row = mysql_fetch_assoc($resource)){ $rt[$i] = $row; $i++;

}

return $rt;

$this->free_result($resource);

}

//从结果集中取出索引数组 public function fetch_row($sql){ $resource = $this->query($sql); $i=0;

while($row = mysql_fetch_row($resource)){ $rt[$i] = $row; $i++;

}

return $rt;

$this->free_result($resource);

}

//取出1行信息

//function column_first($id){

// $row = $this->fetch_assoc(\"select * column_id=\".$id); // return $row[0][column_jiedian]+1; //}

//本次操作mysql 影响的几条记录

public function affected_rows(){

from jsx_column where 9

河南师范大学本科毕业设计

return(mysql_affected_rows());

}

//返回结果集里面的总数量 public function num_rows($sql){ $resource = $this->query($sql); return mysql_num_rows($resource); $this->free_result($resource);

}

//取得插入信息的ID

public function insert_id(){ return mysql_insert_id(); }

//释放结果内存

private function free_result($sql){ mysql_free_result($sql); }

//关闭数据库

public function close(){ return @mysql_close($this->link_id); }

}

?>

4 系统实现

4.1首先通过后台登陆

通过session值到数据库验证,验证通过进入后台管理,如图(1)图(1)4.2网站基本信息配置

10

河南师范大学本科毕业设计

可以在这里填写上网站相关的任何信息,方便前台调取,如图(2)

图(2)

4.3栏目设置

可以根据需要选择不同的栏目模型,如图(3)

11

河南师范大学本科毕业设计

图(3)

图(4)

4.4添加网站内容

12

河南师范大学本科毕业设计

图(5)

4.5生产静态页面

图(6)

4.6系统测试

总体测试:指为检查整个系统功能是否达到预期目标以及完成的软件与编写的文档是否一致而进行的测试。

总体测试关系到整个系统与预期的设计的需求分析等是否一致,是否有违背系统功能的部分,是否有遗漏或者非必要功能(未要求实现的功能)。这些都是总体测试的关键性工作,总体测试关系到整个系统的实现,因此十分的重要。

本系统的总体测试,严格按照所做的需求分析与详细设计对这个系统做总体的测试,

13

河南师范大学本科毕业设计

以保证本博客系统所实现的功能与初期所制定的博客系统的功能相符合,不至于系统在设计与实现这一步骤出现过错与遗漏现象,总体测试因此而显得更为重要。

5总结

设计这个网站主要实现了后台管理员登录功能,后台页面创建栏目功能(单页图文,文章列表,图文列表,在线留言. . .)。单页图文可以发表关于当前栏目的介绍文章;文章列表、图文列表可以添加、删除、修改文章到当前栏目;在线留言可以创建留言页面,通过前台可以实现浏览者留言功能。所有的页面都可以通过后台实现纯静态。

从选择完这个题目之后就开始关注静态化网站,在网上浏览静态化的网站,并且在上面进行各种各样的操作来体验,设计一个静态化网站自己需要准备什么,需要实现什么功能。当然,自己设计的静态化网站系统并不能说是很强大,只能说实现了一些基本功能,中间还存在很多的不足和需要实现的地方。自己也是第一次接触smarty模板,很多地方都要翻阅图书和在网上观看相应的视频才得以很好的配置好这个开发环境。在这段时间的学习中,自己学到了很多。比起书本上的理论知识,动手能力应该是最强的了。

接下来要做的还有很多,如何实现前台会员登录与注册功能,如何实现网站浏览效果的设计,如何实现后台扩展插件,这些都是需要考虑的。也是我以后努力的重点。

参考文献

[1] LAMP兄弟连.细说PHP 电子工业出版社 1-1页数: 828

[2] 郑人杰,殷人昆,陶永雷. 实用软件工程. 清华大学出版社,2003页数:493

[3] 王志刚,朱雷 PHP5应用实例详解:使用Zend Framework & Smarty构筑真正的MVC模式应用 电子工业出版社16开 554页

[4] 潘凯华,刘中华 等编著.php从入门到精通第2版 清华大学出版社 页数: 559

[5] 张恩名. 名师讲坛:PHP开发实战权威指南(附光盘) 第1版. 清华大学出版社 页数: 442 [6] 珊,陈红 数据库系统原理教程 清华大学出版社 页数: 268 [7] 张建伟. 数据库技术与应用. 人民邮电出版社,2008页数: 299

[8] (澳)威利//汤姆森|译者:武欣 PHP和MySQL Web 开发(原书第4版) 机械工业出版社 页数: 714

[9] (美)普雷斯曼 软件工程:实践者的研究方法(原书第7版·本科教学版) 机械工业出版社 页数: 394 [10] 张海藩 软件工程导论 第5版 清华大学出版社

致谢

毕业设计和毕业论文已经落幕,回忆这段时间的艰辛和汗水,自己觉得很值得,因为自己学到了很多知识,也认识到了自己的不足之处。自己的专业知识还不是特别的充足,还需要在下面多加看书,多加练习,对于这块的补充,学校的老师和图书馆给了自己很大的帮助。要再次感谢学校对自己的培育之恩。

14

河南师范大学本科毕业设计

感谢老师的体谅和同学们的帮助,因为在外面工作抽不出很多的时间来做毕业设计和写论文,同班同学一直都互相帮助、互相学习,大家互相进步,彼此之间多沟通,在这样的集体里面自己学到了很多的知识。

在此更要感谢我的导师和专业老师,是你们的细心指导和关怀,使我能够顺利的完成毕业设计和毕业论文。在我的学业和论文的研究工作中无不倾注着老师们辛勤的汗水和心血。老师的严谨治学态度、渊博的知识、无私的奉献精神使我深受启迪。尤其要感谢我的指导老师刘老师,是老师的每次认真的批阅以及无时无刻的跟踪调查才得以让自己一直坚持着走下来。在此我要向我的导师以及我的专业课老师致以最衷心的感谢和深深的敬意。 我不会忘记这难忘的一个月的时间,毕业论文的制作给了我难忘的回忆。在我徜徉书海查找资料的日子里,面对无数书本的罗列,最难忘的是每次找到资料时的激动和兴奋;记忆最深的是每一步小小功能实现时那幸福的心情;为了静态化网站的设计我曾经熬夜熬到夜里2、3点,由于自己是在校外完成的毕业设计,时间不是很充足,就利用工作之于来完成这些工作,确实,自己压力很大,一方面工作,一方面毕业设计,弄的自己真的会感到很累,但是还是坚持了下来,中间的酸甜苦辣成长的过程才是真的值得回味。毕业设计和论文有很多的缺陷,还有待进一步的提高。

脚踏实地,认真严谨,实事求是的学习态度,不怕困难、坚持不懈、吃苦耐劳的精神是我在这次设计中最大的收益。我想这是一次意志的磨练,是对我实际能力的一次提升,也会对我今后的学习和工作有很大的帮助。

XXOO

2013年7月于河南师范大学

15

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务