SPL中定义了一些处理文件、目录的类。首先认识一下SplFileInfo类,该类是通过文件引用来创建对象:
$file = new SplFileInfo('data.txt');
创建对象后,我们就可以调用他的各种方法来获取文件有关信息:
getBasename() //获得文件名 (eg: data.txt)
getExtension() //获得扩展名 (eg: .txt)
getMTime() //创建时间 (单位:秒)
getPathName() //路径名
getSize() //文件大小
getType() //文件类型 (eg: file or dir)
isDir()
isFile()
isWritable()
eg:
$file = new SplFileInfo('data.txtss'); echo "<p>Extentsion: {$file->getExtension()}</p>"; echo "<p>Basename: {$file->getBasename()}</p>"; echo "<p>MTime: {$file->getMTime()}</p>"; echo "<p>Pathname: {$file->getPathname()}</p>"; echo "<p>Size: {$file->getSize()}</p>"; echo "<p>Type: {$file->getType()}</p>"; echo "<p>Writeable: {$file->isWritable()}</p>";
2.要想操作文件,如向文件中写入数据或读取数据,可以使用SplFileObject类,该类是SplFileInfo类的子类,因此可以使用前面提到的所有方法,还可以调用许多新的方法,eg:fgetc(),
fgets(),fwrite(),eof()等,他们与同名文件处理函数相对应,要使用SplFileObject类,需要想该类的构造函数提供两个实参,第一个为文件名(和路径,如果需要),第二个为打开模式:
eg:
$pfile = new SplFileObject('data.txt', 'r'); while(!$pfile->eof()){ echo $pfile->fgets()."<br/>";//读取一行 }
3.SplTempFileObject 类提供了一种创建和已使用临时文件的方法。