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 相关文章推荐
一个php作的文本留言本的例子(六)
Oct 09 PHP
在PHP中使用灵巧的体系结构
Oct 09 PHP
php+mysql实现无限级分类 | 树型显示分类关系
Nov 19 PHP
探讨php中header的用法详解
Jun 07 PHP
php实现的日历程序
Jun 18 PHP
yii用户注册表单验证实例
Dec 26 PHP
基于PHP实现通过照片获取ip地址
Apr 26 PHP
php+MySql实现登录系统与输出浏览者信息功能
Jul 01 PHP
详解Yaf框架PHPUnit集成测试方法
Dec 27 PHP
php微信公众号开发之图片回复
Oct 20 PHP
PDO::errorInfo讲解
Jan 28 PHP
Yii框架学习笔记之session与cookie简单操作示例
Apr 30 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 strcmp使用说明
2010/04/22 PHP
php的一个简单加密解密代码
2014/01/14 PHP
PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析
2014/08/18 PHP
php中使用array_filter()函数过滤空数组的实现代码
2014/08/19 PHP
php使用glob函数遍历文件和目录详解
2016/09/23 PHP
jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
2010/10/20 Javascript
javascript 日期时间 转换的方法
2013/02/21 Javascript
javascript中[]和{}对象使用介绍
2013/03/20 Javascript
asp.net+js实现金额格式化
2015/02/27 Javascript
jQuery横向擦除焦点图特效代码分享
2015/09/06 Javascript
jQuery height()、innerHeight()、outerHeight()函数的区别详解
2016/05/23 Javascript
分享javascript实现的冒泡排序代码并优化
2016/06/05 Javascript
浅析Nodejs npm常用命令
2016/06/14 NodeJs
Bootstrap基本组件学习笔记之下拉菜单(7)
2016/12/07 Javascript
扩展bootstrap的modal模态框-动态添加modal框-弹出多个modal框
2017/02/21 Javascript
jQuery UI 实例讲解 - 日期选择器(Datepicker)
2017/09/18 jQuery
vue2.0 移动端实现下拉刷新和上拉加载更多的示例
2018/04/23 Javascript
[58:58]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第二场
2018/04/05 DOTA
[03:00]DOTA2-DPC中国联赛1月18日Recap集锦
2021/03/11 DOTA
Python IDE环境之 新版Pycharm安装详细教程
2020/03/05 Python
appium+python adb常用命令分享
2020/03/06 Python
Tensorflow安装问题: Could not find a version that satisfies the requirement tensorflow
2020/04/20 Python
PyCharm2020.1.2社区版安装,配置及使用教程详解(Windows)
2020/08/07 Python
matplotlib阶梯图的实现(step())
2021/03/02 Python
美国主要的特色咖啡和茶公司:Peet’s Coffee
2020/02/14 全球购物
毕业生个人的求职信范文
2013/12/03 职场文书
追悼会子女答谢词
2014/01/28 职场文书
鼓励运动员的广播稿
2014/02/08 职场文书
家长写给老师的建议书
2014/03/13 职场文书
经典商业广告词
2014/03/13 职场文书
求职者怎样写自荐信
2014/04/13 职场文书
学习雷锋标语
2014/06/25 职场文书
小学生运动会报道稿
2014/09/12 职场文书
民政局未婚证明
2015/06/15 职场文书
Nginx配置SSL证书出错解决方案
2021/03/31 Servers
Python如何利用正则表达式爬取网页信息及图片
2021/04/17 Python