SPL学习笔记之三:文件和目录处理

SplFileInfo类的作用在于为文件或者目录的属性提供面向对象的访问功能,其典型应用是获取文件或者文件夹的信息。

SplFileInfo类提供了两个关键的方法以支持对它的扩展:

1. setInfoClass:这个函数默认指向SplFileInfo类,如果扩展了SplFileInfo类,应该将这个值设置为扩展类的名称。

2. setFileClass:这个函数默认执行一个SplFileObject类,如果扩展了这个类,应该设置这个值以确保扩展类正式调用SplFileInfo类的代码提供的类。

这两个方法对getFileInfo()、getPathInfo()和openFile()等方法的操作会产生影响。

DirectoryIterator迭代器和SplFileObject类都是从SplFileInfo类继承的,getFileInfo()方法提供了在迭代器中访问某个特定文件的信息的办法,还可以将一个文件对象转换为一个文件信息对象。openFile()方法将访问文件并返回一个SplFileInfo对象,这个对象可以被用来在文件中执行操作。

 

DirectoryIterator迭代器提供了访问某个目录内容列表的功能,它的current()方法会为目录中的当前项返回一个SplFileInfo对象。

使用SplFileInfo对象和DirectoryIterator迭代器示例:

 

 

RecursiveDirectoryIterator迭代器提供了递归式迭代访问功能,以及确定某个路径是否含有子目录的方法。

使用RecursiveDirectoryIterator迭代器范例:

 

 

创建自定义文件过滤器:只需要创建从FilterIterator迭代器继承并且实现accept()方法就可以了。

查找特定类型文件的范例代码:

 

 

SplFileObject类将PHP文件中的I/O函数综合在一起如fopen()、fread()等函数,形成了一个多功能的面向对象的接口。可以使用这个类以面向对象的方法来读取和操作文件数据。

SplFileObject也是一个迭代器,并且还是可查找的,这允许通过foreach循环来使用文件的内容。

以行为单位的迭代访问代码范例:

CSV解释操作代码范例:

 

结合SPL的示例代码,使用SPL的文件和目录特性,还可以实现查找文件、文件内容的搜索等功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值