(计算机软件与理论专业论文)使用php技术构造web服务器日志分析软件.pdf_第1页
(计算机软件与理论专业论文)使用php技术构造web服务器日志分析软件.pdf_第2页
(计算机软件与理论专业论文)使用php技术构造web服务器日志分析软件.pdf_第3页
(计算机软件与理论专业论文)使用php技术构造web服务器日志分析软件.pdf_第4页
(计算机软件与理论专业论文)使用php技术构造web服务器日志分析软件.pdf_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中文摘要 随着i n t e r n e t 的快速发展,w e b 网站的访问量越来越大。网站的维护和 安全已经成为了一个重要问题。w e b 日志如实地记录了网站的被访问情况,因 此日志分析可以帮助我们进行日常维护和科学的决策。国外出现了大量日志分析 工具,可以从各个角度对日志文件进行深入地剖析,并将分析结果以报表形式呈 现给用户。这些国外分析工具虽然性能优越,但是往往价格昂贵而且都是英文界 面,另外它们提供的一些报表也不太符合用户的需求。 本项目包含了国外日志分析软件的大部分功能,主要面向数据库资源中心的 网站。根据该中心的具体需求定制日志分析报表。通过报表可以准确地反映出中 心网站各专业数据库,各页面的实际使用情况。同时也可支持站点的日常维护和 安全防护。 p h p 技术是比较成熟的w e b 开发技术,而且具有开源免费的特点。p h p 拥 有大量免费的组件可以提高开发效率。p e a r 是p h p 扩展及应用程序存储库, 里面包含了构造w e b 程序所需的大量组件。本项目利用p e a rm d b 2 可以连接 多种数据库软件,提高了适用性,利用p e a r 自带的p d f 组件将报表存储到p d f 文件中。j p g r a p h 组件快速构建曲线图,丰富了软件的界面。 本项目还可以利用p h p 技术进一步扩展为站点监控系统,而不仅仅局限于日 志分析。 关键词:p h p 技术,p e a r 技术,日志分析,w e b 开发 a b s t r a c t w i t hr a p i dd e v e l o p m e n to fi n t e r n e t , w e bs e r v e r sa r ev i s i t e db ym o r ea n dm o r e p e o p l e m a i n t e n a n c ea n ds e c u r i t yo fw e b s i t e sh a v eb e e nas e r i o u sp r o b l e m w i t ht h e h e l po fw e bl o gw h i c hr e c o r d st h ei n f o r m a t i o no fw e bs i t e s a c c e s s ,w ec a nc o m p l e t e d a i l ym a i n t e n a n c ea n dd os o m es c i e n t i f i cd e c i s i o nt h r o u g hl o ga n a l y s i s t h e r ea l g a l r e a d yl o t so ft o o l sa b o u tl o ga n a l y s i sa b r o a d t h ee x i s t e dt o o l sc a na c c o m p l i s hd e e p a n a l y s i si ne v e r ya s p e c to fl o gf i l e s ;a l s ot h e yc a ns h o wu s e r st h er e s u l ti nr e p o r t f o r m s a l t h o u g hw i t ht h ea d v a n t a g ei nf u n c t i o n a l i t y , t h ef o r e i g na n a l y s i st o o l sa l e u s u a l l ye x p e n s i v ea n df o c u so ne n g l i s hu i s s o m er e p o r tf o r m ss u p p l i e db yt h e ma r e n o ts u i t a b l et or e q u i r e m e n t so fu s e r s t h e p r o j e c tm e n t i o n e di nt h i sp a p e rc o n t a i n sm a j o rf u n c t i o n ss u p p l i e db ye x i s t e d a n a l y s i st o o l s ,a n di tf o c u s e so nw e b s i t e so ft h ed a t a b a s er e s o u r c ec e n t e r u s e r sc a n c u s t o mt h e i rr e p o r tf o r m so fl o ga n a l y s i sa c c o r d i n gt or e q u i r e m e n t sf r o mt h ec e n t e r r e p o r tf o r m sc a nr e f l e c ta c t u a lu s a g e so fe v e r yp r o f e s s i o n a ld a t a b a s eo rp a g ei nt h e c e n t e rw e b s i t e a l s ot h ep r o j e c t s u p p o r t st h ed a i l ym a i n t e n a n c ea n ds e c u r i t y p r o t e c t i o no fw e b s i t e s p 册w h i c hh a sb e e np r o v e ds u c c e s s f u lo nw e bd e v e l o p m e n ti so p e ns o u r c e a l s o p 肿h a sl o t so ff r e ec o m p o n e n t sw h i c hc a nb eu s e dt oa d v a n c ed e v e l o p m e n t p e a r w h i c he x t e n d sf r o mp 肿i ss t o r a g ef o ra p p l i c a t i o n sa n dh a sl o t so fc o m p o n e n t st o c o n s t r u c tw e bp r o g r a m s i nt h ep a p e r , w eu s ep e a rm d b 2w h i c hc a nc o n n e c tm u l t i d a t a b a s e s ,a n du s ep d fc o m p o n e n tf r o mp e a rt os t o r er e p o r tf o r m si n t op d ff i l e s w eu s ej p g r a p hc o m p o n e n tt oc r e a t ec u r v ed i a g r a mw h i c hc a ne n h a n c es o f t w a r eu i s t h es o f t w a r ep r o p o s e di nt h i sp a p e rc a nb ee x t e n d e da saw e b s i t em o n i t o rs y s t e m w i t hp h p , n o t o n l yl i m i t e dt ol o ga n a l y s i s k e yw o r d s :p h pt e c h n o l o g y , p e a rt e c h n o l o g y ,w e bl o ga n a l y s i s ,w e b d e v e l o p i n g 独创性声明 本人声明所呈交韵学位论文是本人在导师指导下进行的研究工作和取得的 研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表 或撰写过的研究成果,也不包含为获得苤空叁堂或其他教育机构的学位或证 书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中 作了明确的说明并表示了谢意。 学位论文作者签名:起舞i 平 签字日期:z 0 0 1 年1 月z 7 日 学位论文版权使用授权书 本学位论文作者完全了解墨盗盘堂有关保留、使用学位论文的规定。 特授权叁盗盘堂可以将学位论文的全部或部分内容编入有关数据库进行检 索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校 向国家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名:赵舞i l 干 导师签名:恕讼 一 签字日期:z 7 年1 月乙? 日 签字日期: 加7 年f 月? 7 日 第一章概述 第一章概述 随着因特网技术的高速发展,w e b 网站的资源访问状况、网站的智能化决策 支持以及网站的综合分析与评价越来越受到关注。w e b 站点的拥有者往往需要知 道自己的站点哪些栏目受欢迎,哪些栏目很少有人问津。每个栏目的实际使用率 如何,站点提供资料的受欢迎程度如何。这些问题需要一套高效准确的w e b 服 务器日志分析工具来处理,它不是简单地统计点击率而是对一个网站实际使用情 况的综合评价。可用于组合查询的元素包括时间元素,i p 地址元素,栏目元素, 网页请求状态,学科类别元素等。 该系统尤其在图书馆镜像数据库中有着广泛的应用前景。每年高校图书馆需 要购买大量的数据库资源,其中相当一部分是镜像数据库。镜像数据库经过购买 授权后,存储在图书馆的服务器上,并且定时更新。它为师生们提供了种在校 园网内高速获取资料的方式。因为所有资源都在图书馆的服务器上,所以用户的 访问信息也被完整记录下来。可以利用w e b 服务器日志文件和d b m s 获得比较完 整的资源访问情况,大大方便了分析决策。通过统计专业数据库访问数据和相关 图表,决策者可以知道数据库的访问频率、数据库中的栏目使用频率以及各高校 使用数据库的情况等等。如果将多个高校的数据库使用信息综合起来,可以为资 源合理配置提供决策依据。不仅节约经费而且还可以优化数据库的布局,提高访 问效率。 i i 目前国内国外流行的日志分析工具 i i 1 s u m m a r y n e t 日志分析及流量监控软件 一个商业化的日志分析软件,特点: 1 ,界面简洁而且报表数量庞大( 大约可生成2 0 0 张报表) 。 2 ,由文件直接生成报表,不需要中间数据库。 3 ,b s 模式,从浏览器进行所有操作。自带w e b 引擎,不需要安装特殊的 w e b 支持软件。 4 ,站点流量,峰值统计计算非常细致。 5 ,每一张报表,每一个术语都有完整的帮助信息。报表可保存为e x c e l 格 式。 第一章概述 1 1 2w e b t r e n d s 最完善的日志分析工具 全球w e b 分析器的领军企业,拥有1 2 年的开发经验,占有很大的市场份额。 全球多家知名w e b 分析组织都使用w e b t r e n d s 的产品。其产品不仅仅局限在数据 挖掘统计,还有站点安全防护的功能。w e b t r e n d s a n a l r d c s 系列软件可以灵活地 多角度地挖掘数据,定制各种报表,满足大部分商业需要。版本分为:基础版, 市场版,高级市场版,商务版。每一个版本的产品都拥有华丽的g 1 j 1 界面,而 且提供了访问w e b 服务器日志数据的多种方法。 1 1 3a w s t a t s 开源免费的日志分析工具 a w s t a t s 虽然是开源产品,但是基本功能齐全,用经典的p e r l 语言开发,可 以说是日志分析工具中的佼佼者。运行起来需要p e r l 环境支持。 1 2 日志分析软件的功能需求 通过上面的分析我们可以看到,虽然日志分析工具种类很多,但是许多功能 是相同的。主要功能如下所示: 1 2 1 日志文件的数据导入 主要有两类,一类是直接由文件生成报表,读取文件的同时生成报表。这种 方法很简洁,不需要安装额外的软件。日志文件经过几次遍历之后就可以得到分 析结果,分析结果存盘直接得到报表。但是这样做的缺点就是欠灵活,如果需要 增加报表,那么又要重新分析日志文件。假如要重新分析的日志文件是几天前的, 而且系统又设置了文件定期清除,那么可能根本就找不到需要的日志。我们采用 了另一种方法将文件导入数据库后再分析。 可以在一台服务器上安装数据库软件,将其他几台服务器的日志文件导入该 数据库中,然后放心地删除这些日志文件。得到的数据库聚集了几个服务器的日 志,不仅可以生成报表,而且也可以形成数据仓库,进行更深一步地数据挖掘。 大部分d b m s 都有定期备份功能,可以利用该功能将数据备份到其他存储介质 e 。 第一章概述 科学地统计网页访问情况 在指定时间段内,各网页的访问情况到底如何? 首先必须明确如何算网 页被访问了一次。一般分为三种: a ) ,一个网页文件只要被请求,数据库中有一条记录就算被访问一次。 b ) ,一个网页文件在指定的时段内被同一d 访问n 次,统统算为被访 问一次。 c ) ,一个独立的p 地址无论访问多少次网页都算一次。 一般情况下需要对所有网页的访问总量进行大排行,看看到底哪些内容最 受欢迎。更进一步,还可以以文件后缀名为类型索引,统计哪些文件类型是 受访问最多的。一般情况下的网页访问量统计数据有: 舢,网页访问总数。给用户一个确切的统计总数。 b ) ,平均访问数,在时间段中平均网页访问量。 c ) ,上一次统计的访问总量,可以做到历史对比。 d ) ,统计单个网页访问量占所有网页总量的百分比,可以使报表清晰 地指示出该网页的受关注程度。 e ) ,根据文件类型进行统计。用户可以对网页概念进行扩展和延伸, 比如指定h t m l ,h t m ,a s p ,j s p ,p f i p 文件的访问为标准网 页访问行为。指定e x e ,a v i ,p d f 文件的访问视为下载行为, 单独统计下载报表。j p g ,g i f 文件的访问视为网页访问的附属, 可以不进行统计。 f ) ,增长率,该网页访问量较之以前的增长减少幅度。 1 2 3 时间段统计分析 除了关注网页资源以外,我们还需要关注在不同时间段的站点访问情况。一 般是以小时、天、周、月、季度,年为单位进行分析统计。如果按照小时进行分 析,则在给定时间段中,每隔一个小时做一次分析操作。天、周、月、季度,年 同样如此。还有就是自由给定时间段,按照指定时间片进行统计。需要统计的数 据一般包括访问网页数,独立口数,请求成功失败数,发送流量大小。 在进行时间段统计时,有时候需要关心到底有多少的用户访问。独立i p 数 可以部分反映问题。我们还可以设定在单位时间内,同一个i p 不间断地访问算 作一次用户访问。通过这种定义来统计出具体访问量,这样可以过滤掉用户偶然 访问的情况,使数据更加真实可靠。比如,某站点主要提供检索服务,而站点主 网页本身没有什么吸引人的内容。也就是说,如果用户真的需要利用站点,那么 第一章概述 该用户应该提交查询表单,从而获得要查询的数据。于是我们设定,同一m 在 2 0 分钟内,有2 个或2 个以上的网页请求才算作一次访问。否则说明某口只是 偶然访问到站点,没有进行任何检索,这样的请求自然没有什么统计意义,应该 被过滤掉。当然设立这样的条件有可能会错误地过滤掉一小部分数据,但这并不 影响整体数据的统计效果。而且我们可以累计所有访问过的独立p 数,弥补给 用户。 当然累计的总数有时候看起来比较枯燥,为了能够更加明确地反映单位时间 内的访问情况,我们需要统计占有比率。被访问网页总数比率,用户访问量比率, 流量总数比率等等。比如我们统计在过去的2 4 小时内,每个小时的访问情况。 用每个小时被请求的网页总数除以2 4 小时内所有的网页总数,得到一个小时内 的网页访问率。用户访问量比率,数据流量比率也是同样。这样就可以清楚地看 出来在过去的2 4 小时内,哪些时间段网页请求数量大,哪些时间段用户访问量 高,哪些时间段的系统数据量大。这些比单纯的累计数字往往更能说明问题。 当然这些统计数据不仅仅反映在报表中,也可以反映在曲线图、柱图或者饼 图上。 网页的请求不是每次都能成功的,也存在错误情况。h t t p 状态信息有很多, 一般主要关心的有: a ) ,状态2 0 0 表示请求成功。 b ) ,状态3 0 1 表示请求对象被永久转移。 c ) ,状态4 0 0 表示请求不能被服务器解读。 d ) ,状态4 0 4 表示请求的文档不在服务器上。 e ) ,状态5 0 5 表示服务器不支持请求报文使用的h t l 甲协议版本。 我们将每个时间段中各种h t t p 状态信息的统计情况写入报表。这样就可以 清晰地分析出每个时段的网页相应情况,从而可以帮助有效分析可能存在的服务 器故障。 在分时段统计中,我们有时候会对一些明显异常的数据感兴趣。比如某天 1 7 点到1 8 点,这一个小时中数据访问量忽然增大,甚至于大于过去几个小时的 总和。而在某一天所有访问量几乎为0 。这些明显异常的数据在有的软件中通过 醒目的颜色标出,在有的软件中干脆单独拿出来另组一张报表。这对于网络管理 员及时发现并排除问题非常有好处。 一些报表还提供了不同时段对比的功能。在两个不同的时段内,比如2 0 0 6 年1 月与2 0 0 6 年2 月的对比。通过对比,可以看出访问量,网页访问数,下载 量,整体流量等等变化趋势,从而为站点的改进提供依据。 4 第一章概述 1 2 4 分析用户的来源分布 一般日志分析软件会内置一部分口地址范围,比如哪些地址范围属于中国, 哪些属于美国,哪些属于俄罗斯等等。有的界面比较精美的软件,甚至还为不同 的国家地区配上了小旗子。但这些地址范围往往比较粗大,用户可以根据需要自 己细化地址范围。比如某某地址段属于某某地区或者单位,然后可以针对m 地 址分布范围进行统计。分析软件可以自己根据已定义的范围,对数据进行分析归 类。 和单纯以网页为中心的统计方式不同,从口地址的角度进行统计,可以分析出 访问网站的用户分布特点和习惯行为。常见的功能有: 1 ) ,某个口地址段访问网页总数,下载总量。可以清晰地看出访问自己站 点的用户主要来自哪些地区。如果部分网页采用g e t 方式提交表单数据, 还可以分析出用户的查询行为和查询条件。 2 ) ,某个d 地址段访问网页平均数。 3 ) ,某个口地址段历史访问网页数。 4 ) ,某个i p 地址段访问网页或者下载内容频繁程度的排行。比如列出来自 天津大学的所有p 最频繁访问的前十个网页。这样就可以很清楚地看出来 来自天津大学的用户对本站点的哪些内容特别感兴趣,对哪些内容不太感兴 趣。 5 ) ,i p 地址段的分时段访问峰值。对于某口地址段不同时段的访问频率进 行统计,并列举出该部分用户最频繁访问的时间段。假如要分析来自天津大 学的用户在过去2 4 小时中,每个小时的访问频率。日志分析软件首先要统 计在上一个小时中,有多少天津大学的用户访问本站点。然后再分析前一个 小时中的访问情况。一直分析到2 4 小时以前,最后列举出在过去的不同时 间段访问频率。这样就可以看出来,来自天津大学的用户主要集中在哪个时 段访问我们的站点。 6 ) ,通过分析单个p 地址的行为,可以有效地防止黑客攻击。有的日志分 析软件具有强大的口追踪功能,可以分析某些用户的异常行为。有的日志 文件往往几十兆甚至几百兆大,用手工分析的方法显然不现实,所以必须通 过日志分析软件进行定位追踪。比如,u n i e o d e 漏洞攻击,一般在日志中都 会留下这样的查询信息:g e t s c r i p t s w i n n t s y s t e m 3 2 e m d e x e c + d i r2 0 0 。 黑客往往会在攻击之前对于站点进行踩点,试探,这些都可以从日志中反映 出来。有的黑客会在攻击之后试图删除日志文件,如果分析软件具有定时倒 入数据的功能,那么就可以保留下宝贵的记录信息。 第一章概述 一般情况下,同一个i p 对于同一个网页连续两次请求视为一次扎o a d 行 为。日志软件需要对r e l o a d 比较频繁的网页进行排序和列举。通过这张报表, 可以清晰地看出哪些网页经常被r e l o a d 。这些r e l o a d 操作到底用掉了多少 流量。网页被频繁地r e l o a d ,可能是由于保存该网页的站点被频繁地访问, 结果导致网页打开速度过慢。用户长时间打不开网页,于是频繁地发出请求。这 时候就应该考虑网站的部署是否合理。该站点服务器是否需要升级等等。 如果我们提供下载的文件被频繁地r e l o a d ,那么很可能是用户利用下载工 具进行多线程下载。这种下载会占有大量的网络带宽,应该考虑限制这种行为或 者把下载资源转移到f t p 服务器上进行集中管理。 1 2 6 带宽峰值的统计 统计站点的带宽占用,各个不同时段的流量峰值,对于站点维护非常有帮助。 一般日志分析程序都具有这个功能。首先是以某个时间片断为单位统计流量和网 络传播速率。假设时间片段设为1 个小时。分析软件将日志文件中的记录以1 个 小时为间隔进行分组,然后统计每个小时的发送数据量,最后列出报表。此报表 详细地显示了每个小时的流量使用情况,和b p s ( 每秒比特数) ,被访问网页数, 访问者数等等。报表可以排序,这样就反映出什么时间站点访问量最大,什么时 候比较小,什么时候带宽最大。, 日志软件还可以统计被请求的文件的发送数据量,占用带宽情况。被请求的 文件可能是网页文件也可能是提供下载的数据文件。日志软件可以累加每个被请 求文件的发送数据总量,然后除以时间段得出b p s ,这样就可以反映出哪些文件 占用带宽最多,被请求下载次数最多。对于占用带宽非常大的文件,可以镜像到 其他的服务器中,以便减少网络负载。同样对于几乎没有被请求的文件,可以考 虑调整,不再占用服务器资源。 单纯看文件有时候还不太说明问题,因为一些文件尤其是图形文件,往往是 作为网页的附属被发送到客户端。为了具体看出网站的哪些频道栏目最受欢迎, 应该以路径作为中心进行统计。比如本网站的所有下载视频资源统统放在 d o w n l o a d v i d e o 下,因此要统计视频的带宽使用情况必须统计该目录。同样日志 软件累加所有该目录下文件的数据发送量,然后除以时间片断,得出该目录所占 的网络带宽。排序这张报表就可以看出,站点上的哪些频道栏且占用带宽最大, 从而说明最受欢迎。 6 第一章概述 假如所有的视频文件是分散在不同目录下,哪我们如何统计所有视频文件的 带宽占有量呢? 为了解决这个问题,很多日志分析软件提供了文件类型统计报 表。以文件后缀名为作为文件类型的标志,进行统计。比如将文件后缀名a v i 、 m p g 、r m v b 统一设置为视频文件,然后统计所有视频文件占用的带宽,发送总 流量,访问者数量,生成可排序的报表。这样就可以清晰地反映出各种类型文件 下载及占用带宽的情况。 1 2 7 利用r e f e r e r 追踪用户的行为 在s 的w 3 c 扩展日志文件格式中提供了r e f e r e r 引用站点属性。它的主要 含义是:如果用户访问了p a g e l h t m l ,通过p a g e l 又链接到了p a g e 2 。那么p a g e 2 的r e f e r e r 属性就会记录下p a g e l 。正是利用这一点,日志分析软件可以追踪用户 在站点上的行为。 c 碑u - s 1 e m 图1 1 同一个用户留下的访问纪录 假设只考虑用户在一个站点内的行动,那么可以忽略u r l 中的口地址或者 域名,只考虑路径。这样就可以把u r i s t e m 和r e f e r e r 对照起来。图1 1 表 示的是同一个用户( 2 0 2 1 1 3 1 9 x ) 在日志里留下的记录。通过分析可以看到, 用户首先访问了p a g e l 网页,然后经由p a g e l 上的链接到达了p a g e 2 ,再由p a g e 2 上的链接到达了p a g e 3 。这样一条很清晰的访问路径就构成了。我们可以考虑用 户到达p a g e 3 是否经历了太多的链接? 是否可以在p a g e l 上直接加入p a g e 3 链 接? 假如p a g e 3 只能通过p a g e 2 到达,并且p a g e 3 的页面访问数却明显大于p a g e 2 , 那么是否会有黑客袭击的可能? 很多日志分析软件通过r e f e r e r 属性可以分析出用户完整的访问路径,从而为 测试网站,优化网站程序,防止黑客攻击提供了决策依据。一个运转正常的站点 的r e f e r e r 统计分析结果应该和站点原有程序设计基本吻合,否则就应该存在问 7 第一章概述 题。 同时这种分析也可以存入数据仓库,进行更为复杂的数据挖掘。 1 2 8 站点入口和出口的统计 很多日志分析软件还包括了站点入口和出口分析,这样网站管理者就可以看 到哪些用户喜欢从哪里作为站点的入口,哪些用户从哪里离开站点的。入口的分 析依据是:日志文件中,独立记录块中,用户最早申请的网页或者路径。出口的 分析依据是:在一个独立的记录块儿中,用户最后请求的网页或者路径。很显然 多媒体文件,图形文件,j a v a s c r i p t 代码文件不能作为入口点分析,只有页面或 者路径有这个资格。a p a c h e 的日志文件结构是连续下来的一大块纪录。而i i s 的 w 3 c 扩展日志文件则比较灵活,当每次启动服务是,都会在日志文件中重新开 始一个表头,表头记录了启动的详细时间。这样在同一个文件中,记录有详细起 始时间的表头把整个文件划分为一个个记录块。一个记录块代表i i s 的一次启动。 图1 - 2i i s 日志文件中的记录块 图l - 2 表示了典型的i i s 日志文件结构,网站在1 2 月1 号l o 点0 1 分启动, 表头被写入,日志开始记录。后来因故i i s 停止。站点在1 4 点5 1 分再次启动, 一个记录有详细启动时间的表头被写入,从而开始了一个新的记录块。 日志分析程序首先确定一个记录块,先后对于某一个p 地址在记录块中搜 索它最早请求的网页文件或者路径,将结果记录下来。同样搜索该i p 在记录块 儿中最后一次申请,并记录。然后列出入口报表,将所有的入口点按照频率大小 列出。通过该表可以看出来,某入口点被访问多少次,访问最多的i p 地址段。 出口报表也是同样。 第一章概述 如果在入口统计中,某不该作为入口点的网页被列举出来( 比如必须登陆才 能进入的网页) ,那么就一定存在问题。可能是被攻击也可能是站点的程序本身 有问题。 同样如果一些出口网页中如果不包括某些网页,则有可能这些网页被访问的 次数太少了,也许根本就没必要存在。 以上介绍的是一些日志分析软件具有的常规功能,我们的项目实现了里面的 大多数功能。 9 第二章p i - i p 、p e a r 技术及a j a x 技术介绍 第二章p h p 、p e a r 技术及a j a x 技术介绍 2 1p h p 技术介绍 2 1 1 什么是p i - i p 技术 什么是p h p ? p h p 是h y p e r t e x tp r e p r o c e s s o r ( 超文本预处理器) 的缩写,它是一 种运行在服务器端的语言。在功能上与p e r l 语言,j s p 语言,a s p n e t 语言类似。 p h p 必须和i i s 或者a p a c h e 这些w e b 服务器软件配合才能使用,一般和 a p a c h e 配合比较多。p h p 的代码文件一般后缀名为p h p ,实际上是嵌入了p i - - i p 代码的h t m l 文件。“ 共同构成了p h p 代码标记。在代码文 件中,所有的p h p 程序均包含在p h p 代码标记中,所有代码标记以外的内容一 律视为h n 亿代码。 当用户向服务器提交了一个p h p 文件申请后,a p a c h e 将用户的申请参数 和p h p 代码文件一并传给p h p 处理程序。在w i n d o w s 操作系统中,p h p 处 理程序实际上就是一些d l l 文件。接下来p i - i p 处理程序将分析代码文件,并将 处理结果以h t m l 文件的格式,以数据流的形式发送给用户浏览器。处理程序 仅仅处理代码标记 中的程序,并把运算结果输出给用户。对于标记以外 的内容,处理程序原封不动地发送给用户。用户浏览器接到的是一个标准的 h t m l 网页文件,里面不包含p h p 代码但却包含它的运算结果。 p i - i p 的官网是:w w w p h p n e t 2 1 2p h p 语言概述 1 ) ,p h p 的一些基本特性: p h p 中的浮点数均为6 4 位浮点数,1 4 位精度。整数是3 2 位整,没有无符 号整数。p h p 中没有整数除法,只有浮点数除法。如果做除法的过程中有整数溢 出,则会溢出成浮点数。 p h p 5 用e c h o “”方法将数据输出到数据流中。 p h p 中所有的变量都是以“$ ”开头,比如$ a ,$ i l ,$ m y f i l e 等等。 在用户通过表单提交数据后,p h p 自动将表单变量填入sp o s t 或者sg e t 数组中。通过s _ _ p o s t 表单名】或者sg e t 表单名】访问表单变量值。无论用户 是通过g e t 或者p o s t 方式提交表单数据,通过数组$ r e q u e s t 表单名】都 第二章p h p 、p e a r 技术及a j a x 技术介绍 可以得到表单变量值。 p h p 通过给变量赋予不同类型的值来动态改变数据类型。比如: s t = o 0 此时$ t 是浮点类型 s t = a b e 此时$ t 变成了字符串类型。 在p h p 中所有的全局变量都保存在全局变量数组$ g l o b a l s 中。所有的服 务器环境变量都保存在数组$ s e r v e r q j 。所有来自用户浏览器的c o o k i e 都 保存在$ c o o k i e - 数组中。所有的会话变量均保存在$ s e s s i o n 会话变量数组 中。 在p h p 中u n s e t o 数经常被用于销毁一个变量,但是它的作用不是简单的清 除一块内存空间。比如: 栌5 ;变量$ b 的值为5 $ a = & $ b ;变量$ a 和$ b 指向同一块存储空间。 u n s e t ( $ a ) ;销毁变量$ a 。 虽然变量$ a 被销毁,但是它所指向的内存空间并没有被释放。因此$ b 变量 的值依然为5 。 在p h p 中用g e t t y p e 0 和s e t t y p e 0 来操作变量的类型。用g e t t y p e o i 函数返回一 个变量的类型,用s e t t y p e o i 函数动态改变一个变量的类型。 虽然用g e t t y p e 可以取得变量的类型,但是为了确定类型还要将函数返回的 结果进行字符串比较,很繁琐。p h p 中比较常用的几个测试类型函数是: i s d o u b l e ,i s f l o a t ,i s _ r e a l ,i sl o n g ,i s _ i n t ,i s _ i n t e g e r ,i s _ s t r i n g ,i s o b j e c t , i s n u l l ,i s n u m e r i c ,i s _ a r r a y 。 编程的时候我们如何判断一个变量是否真实存在呢? 用i s s e t 0 和e m p t y o i 函 数。i s s e t o i 琢i 数检查变量是否真实存在。e m p t y 0 函数检查变量是否存在,是否为 零和是否为n u l l 。 2 ) ,p h p 的一些特殊性质 p h p 在关系表达式中引入了“一”恒等运算符,即当恒等运算符两边的变 量值相同且类型相同的时候等于t r u e 。p h p 字符串用于比较的时候,作为普通 字面值比较。 比如”a b e ”一”a b e ”结果为t r u e ”1 2 3 ”一1 2 3结果为t r u e ”1 2 3 ”! 一- - - 1 2 3 结果为t r u e 同样p h p 的字符串传入函数也作为值传递,并不像c + + 一样是引用传递。 p h p 对于数组的处理比较有特点,它将数组看作是k e y - v a l u e 形式的哈希表。 p 肿将数组分为相关数组和普通数组。相关数组的模式是:k e y - v a l u e ,就是哈希 第二章p h p 、p e a r 技术及a j a x 技术介绍 表。而普通数组的模式是:i n d e x - v a l u e ,也视为一种特殊的哈希表。 在p h i 中字符串作为参数传入函数的时候,属于值传递而并非是引用传递。 比如: 定义函数 f u n c t i o nf ( s x ) s x - - ”1 1 1 ”: ) $ s a b c ”;佼量$ s 是字符串 坟$ s ) ; $ s 的值依然是”a b e ”,没有任何改变。 字符串传入此函数后,依然是值传递,并非像c 语言一样引用传递。所以改 变$ x 值不影响$ s 的值。 3 ) ,p h p 的面向对象特性 p h p 与j a v a 、剑和c h 语言一样,都是面向对象的编程语言,并且有成熟 的框架。有些框架是开源免费的,有些则是商业产品。p h p 与j a v a 、c 拌有一个 巨大的不同,它不需要虚拟机支持,也不存在垃圾回收问题。所有的变量在脚本 执行完毕后自动失效,这种处理方式更加简洁有效。 既然p h p 支持面向对象,那么它肯定可以定义c l a s s 。 c l a s sm y f i r s t c l a s s p u b l i cf u n c t i o n c o n s t r u c t ( ) 构造函数 p u b l i cf u n c t i o nj e s t r u e t o 晰构函数 ) ) p h p 的对象都是引用类型,这一点和j a v a 一模一样,对于对象的赋值实际上 仅仅对引用赋值。类的定义格式和c + + ,j a v a 很类似,当定义对象的时候,构造 函数被调用。当对象的参照计数为零的时候,在对象被清除前,析构函数被调用。 1 2 第二章p h p 、p e a r 技术及a j a x 技术介绍 也许是作为脚本语言的原因,p h p 对于类和对象的操作并不像j a v a 和c + + 那 么严格。如果用户需要向对象中添加属性,根本不需要更改类,直接赋值就行。 m y o b j - n e wa t t r = ”新属性”: 对象m y o b j 中并没有n e w a t t r 属性,p h p 可以自动生成该属性,并且完成赋 值。 如果我需要在属性赋值前进行一些其他操作该怎么办? 很简单,只需要定义 s e t 0 就可以。当p h p 自动添加属性的时候,如果发现t _ _ s e t 0 函数,则自动将 它作为赋值函数调用。 值得注意的是,- s e t o 方法仅仅在给未定义属性赋值的时候才有用。对于 已存在的属性,没有任何意义。 与s e t 0 方法相对,j e t ( ) 方法当读取类中不存在的属性时被调用。 p h p 的这种处理方法对于对象操作来说非常灵活,具有独特的优点。 同样- c a l l 0 方法是在访问类中不存在的方法时被调用,第一个参数是方 法名,第二个是参数数组。 p h p 也支持_ _ _ _ c l o n e 0 方法和类常量( c o n s t 关键字) 。p h p 5 中新引入了 t r y - c a t c h 错误处理机制,具体使用和j a v a 类似。 2 1 3 p h i 开发工具 p h p 并不需要什么特殊的开发工具,一个文本编辑器就足够了。一些专业级 的编辑工具比如u l t r a e d i t ,e d i t p l u s ,e m a c s 等可以对p h p 语法,h t m l 语法j a v a s c r i p t 语法进行校验和语法加亮,非常方便。安装完a p a c h e 或者i i s 、p h p 核心包、编 辑器和浏览器就构成了一个最基本的p h p 开发系统。 一些j a v a 程序员喜欢使用e c l i p s e 。在开源社区,有很多关于p h p 的e c l i p s e 插件,它可以把e c l i p s e 变成p h p 的i d e 开发环境。比如p h p e c l i p s e 插件。 p h p e c l i p s e 是s o u r c e f o r g e 的项目。s o u r c e f o r g e n e t 是一个站点,它为开源 开发团队提供了自由免费的通讯和协作平台。p h p e c l i p s e 软件包主要功能有: 1 ,p h p 编辑器,支持p h p 语法和所有内置函数。 2 ,专业级调试器,方便除错。 3 ,p h p d o c u m e n t o r ,类似于j a v a d o c 的工具,帮助用户快速建立开发文档。 4 ,利用q u a n t u m d b 插件的s q l 数据库接口。 5 ,p m 的部署工具。 另外生产p 唧内核的z e n d 公司还推出了商业版的z e n ds t u d i o 。该工具非 常类似微软的v i s u a ls t u d i o2 0 0 5 ,是一个功能完备的i d e 。它包含了大量的控件, 第二章p h p 、p e a r 技术及a j a x 技术介绍 开发p h pw e b 程序就像开发单机程序一样简单,自然价格不菲。 2 1 4p h p 的费用问题 p 肿的内核是完全免费的,但是从内核延伸出来的高级开发组件是要收费 的。p h p 的内核是由z e e vs u m s l ( i 和a n d ig u t m a n s 共同开发,后来二人合作组 建了z e n d 公司。z e n d 一词就是由二人的名字组合而成。z e n d 公司将p h p 的核心开源并免费提供给大家使用。但是围绕p h p 的高级产品是要收费的,这也 是z e n d 公司的主要盈利方式。例如: z e n ds t u d i o : w e b 集成式开发环境,非常类似于微软的v i s u a ls t u d i o n e t 。 z e n dp l a t f o r m : 企业级p h p 应用的r u n t i m e 平台环境。 z e n ds a f e g u a r ds u i m :包含了两个部分,z e n de n c o d c r 编译和保护商业应用, z e n dl i c e n s em a n a g e r : 授权和分配商业应用。 z e n do p t i m i z e r :p h p 程序优化器,可优化经过编译的代码。 2 2p e a r 技术介绍 2 2 1 什么是p e a r p e a r 的官方站点是:h t t p :p e a r p h p n e t 。 , p e a r 是“p 册e x t e n s i o na n da p p l i c a t i o nr e p o s i t o r y ”的缩写,即p h p 扩展 及应用程序存储库。p e a r 是为了组件复用而产生的一种架构和分发系统。p e a r 以包( p a c k a g e s ) 的形式分发组件。用户可以在本地运行p e a r 的命令行接口自 动安装或者升级p e a r 包,也可以从官网上下载包手动安装。p e a r 的主要内容 是: l ,提供了一个结构化开源代码库。 2 ,提供了面向代码分发和包维护的系统。 3 ,规定了p h p 代码编写的标准风格。 4 ,p e a r 开发小组维护了一个站点,提供邮件列表服务和所有p e a r 库的 下载镜像。 p e a r 包都是g z i p p e dt a r 文件格式,每一个p e a r 包都是由不同的开发小组 维护,里面包含了p h p 代码文件和详细的文档说明。p e a r 各个包之间并不是 独立的,它们往往存在着关联。也就是说,存在某个包可能会依附于其他几个包 的存在,安装这个包必需首先安装它所依附的包。比如: 1 4 第二章p h p 、p e a r 技术及a j a x 技术介绍 p e a r :c a l e n d a r 包依赖于p e a r :d a t e 包,因为c a l e n d a r 类中的部分代码使 用了d a t e 类中的代码。 p e a r 提供的组件包分为稳定版和b e t a 版。b e t a 版的包可能会引起系统 的不稳定,甚至一些b e t a 版的包中缺少必要文件。所以在下载安装之前一定要 检查要安装的版本。 2 2 2 p e a r 的安装 在p h p 安装目录下有一个g o - p e a r b a t 的批处理文件,运行它,选择s y s t e m 安装方式,根据提示就可以安装p e a r 的基础部分。安装程序会自动列举出文件 安装目录。第一个是安装前缀i n s t a l l a t i o np r e f i x ,即变量s p r e f i x ,变量值就是p h p 的安装目录,比如d :p h p 5 。然后由变量$ p r e f i x ,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论