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


Posted in PHP onMay 11, 2015

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

}
PHP 相关文章推荐
Breeze 文章管理系统 v1.0.0正式发布
Dec 14 PHP
php抓取页面与代码解析 推荐
Jul 23 PHP
PHP中英混合字符串截取函数代码
Jul 17 PHP
php快递单号查询接口使用示例
May 05 PHP
PHP实现的简单三角形、矩形周长面积计算器分享
Nov 18 PHP
php通过baihui网API实现读取word文档并展示
Jun 22 PHP
谈谈 PHP7新增功能
Dec 16 PHP
Twig模板引擎用法入门教程
Jan 20 PHP
PHP实现多级分类生成树的方法示例
Feb 07 PHP
详解php实现页面静态化原理
Jun 21 PHP
PHP实现权限管理功能示例
Sep 22 PHP
PhpStorm连接服务器并实现自动上传功能
Dec 09 PHP
PHP设计模式之适配器模式代码实例
May 11 #PHP
Mac环境下php操作mysql数据库的方法分享
May 11 #PHP
PHP设计模式之装饰者模式代码实例
May 11 #PHP
PHP超牛逼无限极分类生成树方法
May 11 #PHP
php以fastCGI的方式运行时文件系统权限问题及解决方法
May 11 #PHP
PHP获取当前日期和时间及格式化方法参数
May 11 #PHP
PHP借助phpmailer发送邮件
May 11 #PHP
You might like
PHP+DBM的同学录程序(2)
2006/10/09 PHP
PHP5中使用PDO连接数据库的方法
2010/08/01 PHP
PHP 处理TXT文件(打开/关闭/检查/读取)
2013/05/13 PHP
PHP获取一年中每个星期的开始和结束日期的方法
2015/02/12 PHP
PHP判断是否为空的几个函数对比
2015/04/21 PHP
php判断两个日期之间相差多少个月份的方法
2015/06/18 PHP
分享php邮件管理器源码
2016/01/06 PHP
读jQuery之九 一些瑕疵说明
2011/06/21 Javascript
解决jquery操作checkbox火狐下第二次无法勾选问题
2014/02/10 Javascript
JS实现的4种数字千位符格式化方法分享
2015/03/02 Javascript
简述AngularJS相关的一些编程思想
2015/06/23 Javascript
Bootstrap基本插件学习笔记之Tooltip提示工具(18)
2016/12/08 Javascript
JS对象是否拥有某属性如何判断
2017/02/03 Javascript
jquery实现自定义图片裁剪功能【推荐】
2017/03/08 Javascript
使用 Node.js 对文本内容分词和关键词抽取
2017/05/27 Javascript
JavaScript之浏览器对象_动力节点Java学院整理
2017/07/03 Javascript
JS实现对json对象排序并删除id相同项功能示例
2018/04/18 Javascript
如何配置vue.config.js 处理static文件夹下的静态文件
2020/06/19 Javascript
[18:16]sakonoko 2017年卡尔集锦
2018/02/06 DOTA
Python新手入门最容易犯的错误总结
2017/04/24 Python
Python实现二维数组按照某行或列排序的方法【numpy lexsort】
2017/09/22 Python
利用python库在局域网内传输文件的方法
2018/06/04 Python
Python使用cx_Freeze库生成msi格式安装文件的方法
2018/07/10 Python
Python简单获取二维数组行列数的方法示例
2018/12/21 Python
win10系统下python3安装及pip换源和使用教程
2020/01/06 Python
Python多线程通信queue队列用法实例分析
2020/03/24 Python
Python configparser模块操作代码实例
2020/06/08 Python
django中ImageField的使用详解
2020/12/21 Python
HTML5 新旧语法标记对我们有什么好处
2012/12/13 HTML / CSS
电台实习生求职信
2014/02/25 职场文书
一年级学生期末评语
2014/04/21 职场文书
售房协议书范本2014
2014/10/23 职场文书
离婚答辩状范文
2015/05/22 职场文书
公司管理制度范本
2015/08/03 职场文书
Django对接elasticsearch实现全文检索的示例代码
2021/08/02 Python
angular异步验证器防抖实例详解
2022/03/31 Javascript