当前位置:首页 > PHP教程 > php高级应用 > 列表

PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例

发布:smiling 来源: PHP粉丝网  添加日期:2021-05-26 15:07:05 浏览: 评论:0 

这篇文章主要介绍了PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例,本文讲解SplFileInfo用来获取文件详细信息、SplFileObject遍历、查找指定行、写入csv文件等内容,需要的朋友可以参考下。

PHP SPL中提供了SplFileInfo和SplFileObject两个类来处理文件操作。

SplFileInfo用来获取文件详细信息:

  1. $file = new SplFileInfo('foo-bar.txt'); 
  2.  
  3. print_r(array
  4.     'getATime' => $file->getATime(), //最后访问时间 
  5.     'getBasename' => $file->getBasename(), //获取无路径的basename 
  6.     'getCTime' => $file->getCTime(), //获取inode修改时间 
  7.     'getExtension' => $file->getExtension(), //文件扩展名 
  8.     'getFilename' => $file->getFilename(), //获取文件名 
  9.     'getGroup' => $file->getGroup(), //获取文件组 
  10.     'getInode' => $file->getInode(), //获取文件inode 
  11.     'getLinkTarget' => $file->getLinkTarget(), //获取文件链接目标文件 
  12.     'getMTime' => $file->getMTime(), //获取最后修改时间 
  13.     'getOwner' => $file->getOwner(), //文件拥有者 
  14.     'getPath' => $file->getPath(), //不带文件名的文件路径 
  15.     'getPathInfo' => $file->getPathInfo(), //上级路径的SplFileInfo对象 
  16.     'getPathname' => $file->getPathname(), //全路径 
  17.     'getPerms' => $file->getPerms(), //文件权限 
  18.     'getRealPath' => $file->getRealPath(), //文件绝对路径 
  19.     'getSize' => $file->getSize(),//文件大小,单位字节 
  20.     'getType' => $file->getType(),//文件类型 file  dir  link 
  21.     'isDir' => $file->isDir(), //是否是目录 
  22.     'isFile' => $file->isFile(), //是否是文件 
  23.     'isLink' => $file->isLink(), //是否是快捷链接 
  24.     'isExecutable' => $file->isExecutable(), //是否可执行 
  25.     'isReadable' => $file->isReadable(), //是否可读 
  26.     'isWritable' => $file->isWritable(), //是否可写 
  27. )); 

SplFileObject继承SplFileInfo并实现RecursiveIterator , SeekableIterator接口 ,用于对文件遍历、查找、操作

遍历:

  1. try { 
  2.     foreach(new SplFileObject('foo-bar.txt'as $line) { 
  3.         echo $line
  4.     } 
  5. } catch (Exception $e) { 
  6.     echo $e->getMessage(); 

查找指定行:

  1. try { 
  2.     $file = new SplFileObject('foo-bar.txt'); 
  3.     $file->seek(2); 
  4.     echo $file->current(); 
  5. } catch (Exception $e) { 
  6.     echo $e->getMessage(); 

写入csv文件:

  1. $list  = array ( 
  2.     array'aaa' ,  'bbb' ,  'ccc' ,  'dddd' ), 
  3.     array'123' ,  '456' ,  '7891' ), 
  4.     array'"aaa"' ,  '"bbb"' ) 
  5. ); 
  6.  
  7. $file  = new  SplFileObject ( 'file.csv' ,  'w' ); 
  8.  
  9. foreach ( $list  as  $fields ) { 
  10.     $file -> fputcsv ( $fields ); 
  11. }

Tags: SPL标准库 SplFileInfo SplFileObject

分享到: