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 相关文章推荐
snoopy 强大的PHP采集类使用实例代码
Dec 09 PHP
php与mysql建立连接并执行SQL语句的代码
Jul 04 PHP
PHP的可变变量名的使用方法分享
Feb 05 PHP
解析php dirname()与__FILE__常量的应用
Jun 24 PHP
php+js iframe实现上传头像界面无跳转
Apr 29 PHP
PHP获取短链接跳转后的真实地址和响应头信息的方法
Jul 25 PHP
php新浪微博登录接口用法实例
Dec 23 PHP
thinkPHP2.1自定义标签库的导入方法详解
Jul 20 PHP
Yii框架参数化查询中IN查询只能查询一个的解决方法
May 20 PHP
PHP实现数据库统计时间戳按天分组输出数据的方法
Oct 10 PHP
Laravel框架路由和控制器的绑定操作方法
Jun 12 PHP
如何使用php生成zip压缩包
Apr 21 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
php5数字型字符串加解密代码
2008/04/24 PHP
php中获取远程客户端的真实ip地址的方法
2011/08/03 PHP
让ThinkPHP支持大小写url地址访问的方法
2014/10/31 PHP
PHP线程的内存回收问题
2016/07/08 PHP
php 输入输出流详解及示例代码
2016/08/25 PHP
jquery无法设置checkbox选中即没有变成选中状态
2014/03/27 Javascript
jQuery中innerHeight()方法用法实例
2015/01/19 Javascript
实现React单页应用的方法详解
2016/08/02 Javascript
关于js原型的面试题讲解
2016/09/25 Javascript
angular2 ng build部署后base文件路径问题详细解答
2017/07/15 Javascript
微信小程序实战篇之购物车的实现代码示例
2017/11/30 Javascript
javascript中的replace函数(带注释demo)
2018/01/07 Javascript
js调用设备摄像头的方法
2018/07/19 Javascript
详解在vue-test-utils中mock全局对象
2018/11/07 Javascript
如何使用CSS3和JQuery easing 插件制作绚丽菜单
2019/06/18 jQuery
前端开发之便利店收银系统代码
2019/12/27 Javascript
jQuery 动态粒子效果示例代码
2020/07/07 jQuery
[04:28]DOTA2亚洲邀请赛小组赛第五日 TOP10精彩集锦
2015/02/03 DOTA
python实现通过pil模块对图片格式进行转换的方法
2015/03/24 Python
整理Python中的赋值运算符
2015/05/13 Python
Python编写一个闹钟功能
2017/07/11 Python
Python3 中把txt数据文件读入到矩阵中的方法
2018/04/27 Python
python执行系统命令后获取返回值的几种方式集合
2018/05/12 Python
对Django 转发和重定向的实例详解
2019/08/06 Python
Python3.7将普通图片(png)转换为SVG图片格式(网站logo图标)动起来
2020/04/21 Python
欧舒丹加拿大官网:L’Occitane加拿大
2017/10/29 全球购物
NFL墨西哥官方商店:Tienda NFL
2017/11/28 全球购物
英国创新设计文具、卡片和礼品包装网站:Paperchase
2018/07/14 全球购物
HOTEL INFO英国:搜索全球酒店
2019/08/08 全球购物
请解释在new与override的区别
2012/10/29 面试题
求职自荐信
2013/12/14 职场文书
军训自我鉴定200字
2014/02/13 职场文书
领导党性分析材料
2014/02/15 职场文书
《母鸡》教学反思
2014/02/25 职场文书
党员考试作弊检讨书1000字
2015/02/16 职场文书
创业计划书详解
2019/07/19 职场文书