当前位置: 首页 > 编程笔记 >

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

慕容星晖
2023-03-14
本文向大家介绍PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例,包括了PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例的使用技巧和注意事项,需要的朋友参考一下

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 );

}

 类似资料:
  • std::io::fs 模块包含几个处理文件系统的函数。 use std::fs; use std::fs::{File, OpenOptions}; use std::io; use std::io::prelude::*; use std::os::unix; use std::path::Path; // `% cat path` 的简单实现 fn cat(path: &Path) -> i

  • 本文向大家介绍PHP SPL标准库之SplFixedArray使用实例,包括了PHP SPL标准库之SplFixedArray使用实例的使用技巧和注意事项,需要的朋友参考一下 SplFixedArray主要是处理数组相关的主要功能,与普通php array不同的是,它是固定长度的,且以数字为键名的数组,优势就是比普通的数组处理更快。 看看我本机的Benchmark测试: 结果如下: 通常情况下Sp

  • 本文向大家介绍C++标准模板库map的常用操作,包括了C++标准模板库map的常用操作的使用技巧和注意事项,需要的朋友参考一下 一:介绍 map是STL的关联式容器,以key-value的形式存储,以红黑树(平衡二叉查找树)作为底层数据结构,对数据有自动排序的功能。 命名空间为std,所属头文件<map> 注意:不是<map.h> 二:常用操作 容量: a.map中实际数据的数据:map.size

  • 本文向大家介绍C++标准模板库vector的常用操作,包括了C++标准模板库vector的常用操作的使用技巧和注意事项,需要的朋友参考一下 一:介绍 vector是C++标准模板库,是一个容器,底层是数组,为连续内存。 命名空间为std,所属头文件为<vector>   注意:不是<vector.h> vector存储数据时,会分配一个存储空间,如果继续存储,该分配的空间已满,就会分配一块更大的内

  • 上一节我们实现了通过Command调用subprocess。这一节,我们将通过自己的代码去实现一个简单的grep。当然了,这种基础的工具你是能找到源码的,而我们的实现也并不像真正的grep那样注重效率,本节的主要作用就在于演示标准库API的使用。 首先,我们需要对当前目录进行递归,遍历,每当查找到文件的时候,我们回调一个函数。 于是,我们就有了这么个函数: use std::env::args;

  • 本文向大家介绍JavaScript门道之标准库,包括了JavaScript门道之标准库的使用技巧和注意事项,需要的朋友参考一下 1.什么是标准库(Standard Library) 标准库指的是js的标准内置对象,是js这门语言本身初始时提供的在全局范围的对象 2.Object对象及其实例 JavaScript原生提供一个Object对象,所有的其他对象均继承自这一对象 Object对象的属性和方