文章教程

2.8构筑简易的记事本系统

9/17/2020 9:43:31 PM 人评论 次浏览

2.8 构筑简易的记事本系统

本节我们尝试构筑一个简易的记事本系统。

做开发工作时,大家肯定有记录自己灵感的经验吧,还有一些关于工作上的安排等之类的事情。有时候就那么灵光一闪的小事情,如果没有及时记录下来,事后总是因为想不起而懊恼不已。这个简易的记事本系统就是帮助大家及时地记录下自己的思想,方便查询,解决大家的一个小小烦恼。当然也是练习PHP开发的好机会了,也能在这个基础开发出更强大的应用。

我们建立的简易记事本外观如图所示。

alt

本例要点

本节中用到了文件的读取/写入的操作,前面已经涉及这方面的知识,可以返回到前几节复习一下相关知识。

请注意,本系统中的文本文件并不是直接保存,而以压缩的形式进行保存的。另外,主页面分成了两帧(frame),关于HTML、JavaScript的知识这里就不一一赘述了,请参考相关资料。先理解每一帧代码,再总体把握,理清各个页面间的关系,相信会很掌握所有内容。

目录结构

alt

本例代码

alt

为了防止删除处理后的页面不整合,将页面的Cashe处理无效化。

这里调用的这些header函数都是Cashe无效化的处理,因为Cashe在客户端、代理服务器、Web服务器中都有处理,所以要将所有地方都做无效化处理。

第二行将页面的有效期限定义在过去的时间。第三行将页面的最新更新时间定义在现在的时刻,4行、5行将经由各个Cashe服务器的Cashe无效(分别对应于HTTP1.0与HTTP1.1)。

alt

连接目标必须放在下帧。

alt

读取“./doc”,所有文件作为选择框的要素。

alt

根据变量$_POST['proc']来判断,哪个按钮被单击。

alt

在“读入”按钮被点击的情况下,首先应用isValid函数判断指定的文件是否存在,且是在指定目录“./doc”下,TRUE时才开始读入它。为了节省服务器的空间,将文件是以压缩文件的形式保存的,因此不是用fopen函数而是用gzopen函数来打开文件的,打开以后的流程与普通文件的情况没有什么区别。应用gzgets函数一行行地读取数据,直至文件的末尾(gzeof函数返回TRUE)。gzgets函数对压缩过的数据自动解冻,并返回结果文字串。

alt

在“删除”按钮被单击时,删除对象文件,并跳转到index.php(输出相关的JavaScript脚本),与“读入”一样,删除前也进行了文件存在与否的检查。

alt

在“删除”按钮被单击时,先进行文件存在检查,不存在时才进行文件的生成。

gzopen函数的第二参数“a9”,分别是打开模式与压缩率的意思。a是追加模式,9表示最大压缩率(可以指定0到9的压缩率)。如果存在同名的文件,显示警告信息。

alt

为了将保存目录传递给save.php,此处将编辑中的文件保存在隐藏域中。

alt

变量$_POST['doc']中保存index.php中编辑对象文件的路径。指定的路径如果在./doc下才进行5行到8行的处理。

alt

将对象文件以追加方式,压缩率9的形式打开。

alt

文本域中的内容边压缩边追加。

alt

追加结束后,关闭文件。

alt

处理结束后,跳转到index.php。

alt

补充

注意在Linux环境中的配置

本节用到的zlib压缩函数属于扩展模块,使用时需要事先导入到Windows版的PHP环境中,zlib压缩函数会默认被导入。Linux环境的情况下,如果按照第1章中介绍的环境配置方法进行的设置,应该也不用担心。

教程类别