PHP SPL标准库之文件操作

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

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

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

   代码如下:

  $file = new SplFileInfo('foo-bar.txt');

  print_r(array(

  'getATime' => $file->getATime(), //最后访问时间

  'getBasename' => $file->getBasename(), //获取无路径的basename

  'getCTime' => $file->getCTime(), //获取inode修改时间

  'getExtension' => $file->getExtension(), //文件扩展名

  'getFilename' => $file->getFilename(), //获取文件名

  'getGroup' => $file->getGroup(), //获取文件组

  'getInode' => $file->getInode(), //获取文件inode

  'getLinkTarget' => $file->getLinkTarget(), //获取文件链接目标文件

  'getMTime' => $file->getMTime(), //获取最后修改时间

  'getOwner' => $file->getOwner(), //文件拥有者

  'getPath' => $file->getPath(), //不带文件名的文件路径

  'getPathInfo' => $file->getPathInfo(), //上级路径的SplFileInfo对象

  'getPathname' => $file->getPathname(), //全路径

  'getPerms' => $file->getPerms(), //文件权限

  'getRealPath' => $file->getRealPath(), //文件绝对路径

  'getSize' => $file->getSize(),//文件大小,单位字节

  'getType' => $file->getType(),//文件类型 file dir link

  'isDir' => $file->isDir(), //是否是目录

  'isFile' => $file->isFile(), //是否是文件

  'isLink' => $file->isLink(), //是否是快捷链接

  'isExecutable' => $file->isExecutable(), //是否可执行

  'isReadable' => $file->isReadable(), //是否可读

  'isWritable' => $file->isWritable(), //是否可写

  ));

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

  遍历:

   代码如下:

  try {

  foreach(new SplFileObject('foo-bar.txt') as $line) {

  echo $line;

  }

  } catch (Exception $e) {

  echo $e->getMessage();

  }

  查找指定行:

     代码如下:

  try {

  $file = new SplFileObject('foo-bar.txt');

  $file->seek(2);

  echo $file->current();

  } catch (Exception $e) {

  echo $e->getMessage();

  }

  写入csv文件:

  代码如下:

  $list = array (

  array( 'aaa' , 'bbb' , 'ccc' , 'dddd' ),

  array( '123' , '456' , '7891' ),

  array( '"aaa"' , '"bbb"' )

  );

  $file = new SplFileObject ( 'file.csv' , 'w' );

  foreach ( $list as $fields ) {

  $file -> fputcsv ( $fields );

  }

时间: 2023-09-27

PHP SPL标准库之文件操作的相关文章

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

PHP SPL中提供了SplFileInfo和SplFileObject两个类来处理文件操作. SplFileInfo用来获取文件详细信息: 复制代码 代码如下: $file = new SplFileInfo('foo-bar.txt');   print_r(array(     'getATime' => $file->getATime(), //最后访问时间     'getBasename' => $file->getBasename(), //获取无路径的basenam

PHP SPL标准库之接口(Interface)详解

  这篇文章主要介绍了PHP SPL标准库之接口(Interface)详解,本文分别讲解了Coutable接口.OuterIterator接口.RecursiveIterator接口.SeekableIterator接口.SplObserver和SplSubject接口等内容,需要的朋友可以参考下 PHP SPL标准库总共有6个接口,如下: 1.Countable 2.OuterIterator 3.RecursiveIterator 4.SeekableIterator 5.SplObserv

PHP SPL标准库中的常用函数介绍

  这篇文章主要介绍了PHP SPL标准库中的常用函数介绍,本文着重讲解了spl_autoload_extensions().spl_autoload_register().spl_autoload()三个函数,需要的朋友可以参考下 PHP SPL标准库中提供了一些函数用来处理如自动加载.迭代器处理等. spl_autoload_extensions()添加spl_autoload()可加载的文件扩展名 spl_autoload_register()注册函数到SPL __autoload函数栈中

PHP SPL标准库之接口(Interface)详解_php实例

PHP SPL标准库总共有6个接口,如下: 1.Countable 2.OuterIterator 3.RecursiveIterator 4.SeekableIterator 5.SplObserver 6.SplSubject 其中OuterIterator.RecursiveIterator.SeekableIterator都是继承Iterator类的,下面会对每种接口作用和使用进行详细说明. Coutable接口: 实现Countable接口的对象可用于count()函数计数. 复制代码

PHP SPL标准库中的常用函数介绍_php技巧

PHP SPL标准库中提供了一些函数用来处理如自动加载.迭代器处理等. spl_autoload_extensions()添加spl_autoload()可加载的文件扩展名 spl_autoload_register()注册函数到SPL __autoload函数栈中. 复制代码 代码如下: /*test1.php*/ <?php class Test1 { }   /*test2.lib.php*/ <?php class Test2 { }   /*test.php*/ <?php /

PHP SPL标准库之数据结构堆(SplHeap)简单使用实例

  这篇文章主要介绍了PHP SPL标准库之数据结构堆(SplHeap)简单使用实例,本文还同时讲解了最大堆(SplMaxHeap).最小堆(SplMinHeap)的相关知识,需要的朋友可以参考下 堆(Heap)就是为了实现优先队列而设计的一种数据结构,它是通过构造二叉堆(二叉树的一种)实现.根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆.二叉堆还常用于排序(堆排序). 如下:最小堆(任意节点的优先级不小于它的子节点) 看看PHP SplHeap的实现: 显然它是一个抽象类,

PHP SPL标准库之数据结构栈(SplStack)介绍

  这篇文章主要介绍了PHP SPL标准库之数据结构栈(SplStack)介绍,栈(Stack)是一种特殊的线性表,因为它只能在线性表的一端进行插入或删除元素(即进栈和出栈),需要的朋友可以参考下 栈(Stack)是一种特殊的线性表,因为它只能在线性表的一端进行插入或删除元素(即进栈和出栈) SplStack就是继承双链表(SplDoublyLinkedList)实现栈. 类摘要如下: 简单使用如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

PHP SPL标准库之SplFixedArray使用实例

  这篇文章主要介绍了PHP SPL标准库之SplFixedArray使用实例,SplFixedArray主要是处理数组相关的主要功能,它是固定长度的,比普通的数组处理更快,需要的朋友可以参考下 SplFixedArray主要是处理数组相关的主要功能,与普通php array不同的是,它是固定长度的,且以数字为键名的数组,优势就是比普通的数组处理更快. 看看我本机的Benchmark测试: ? 1 2 3 4 5 6 7 8 9 10 ini_set('memory_limit','12800M

PHP SPL标准库之数据结构栈(SplStack)介绍_php实例

栈(Stack)是一种特殊的线性表,因为它只能在线性表的一端进行插入或删除元素(即进栈和出栈) SplStack就是继承双链表(SplDoublyLinkedList)实现栈. 类摘要如下: 简单使用如下: //把栈想象成一个颠倒的数组 $stack = new SplStack(); /** * 可见栈和双链表的区别就是IteratorMode改变了而已,栈的IteratorMode只能为: * (1)SplDoublyLinkedList::IT_MODE_LIFO | SplDoublyL