7-10 项目:创建和使用文件类
处理文件时,会花很多时间检查来确保文件已经打开、已经关闭以及文件确实存在等。由于处理文本文件时验证是关键,而且所有情况下都需要充分的验证,因此创建一个更有用的类完成所有这些繁琐工作是有意义的。下面的cfile类就完成了使用文件的大部分验证工作。只需创建这个类的一个新实例,指向一个指定的文件路径,系统就会负责完成余下的工作。你可以轻松地读写或追加文件,这个类再加上PHP 5新增的异常处理系统将处理所有验证。
代码





从代码和注释中完全可以了解代码是如何工作的。这个类中唯一真正复杂的部分已经在前面的例子中讨论过。使用这个类的方法相当多,也很让人兴奋。例如考虑下面这个例子:

![]()
工作原理
可以看到,读写已经充分简化。只需实例化一个cfile对象,从这个对象传递适当的参数就可以进行读写。read()函数从文本文件返回一个完整的字符串,write()方法会自动将指定的文本写入文件,append()方法将指定的文本增加到文件末尾。总地说来,与每次验证是否打开和关闭文件相比,写$myfile->read()要容易得多,也高效得多。
处理目录
就像文件一样,PHP 5在解析和读取目录方面也有不俗的表现。实际上,想想看,使用递归功能可以有效地搜索和输出整个目录结构,所以PHP的目录处理功能相当灵活。这种算法可以大大节省开发时间。下面的例子展示了在处理一个文件服务器目录列表时PHP提供了多么强大的功能。
PHP 5提供了一些方便的目录解析函数。opendir()会打开一个目录进行读取、is_dir()验证一个目录是否存在、readdir()解析一个目录、closedir()用于关闭一个打开的目录、scandir()允许扫描一个目录来得到由目录中的文件构成的一个数组。这些函数非常有用,其原型如下:






