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
MySQL相关说明
Jan 15 PHP
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
Mar 13 PHP
php如何解决无法上传大于8M的文件问题
Mar 10 PHP
php使用数组填充下拉列表框的方法
Mar 31 PHP
php封装的mysqli类完整实例
Oct 18 PHP
php实现替换手机号中间数字为*号及隐藏IP最后几位的方法
Nov 16 PHP
php 如何禁用eval() 函数实例详解
Dec 01 PHP
ThinkPHP 整合Bootstrap Ajax分页样式
Dec 23 PHP
PHP API接口必备之输出json格式数据示例代码
Jun 27 PHP
PHP实现用户异地登录提醒功能的方法【基于thinkPHP框架】
Mar 15 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
Feb 27 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
thinkphp判断访客为手机端或PC端的方法
2014/11/24 PHP
php从给定url获取文件扩展名的方法
2015/03/14 PHP
Swoole 5将移除自动添加Event::wait()特性详解
2019/07/10 PHP
在IE和VB中支持png图片透明效果的实现方法(vb源码打包)
2011/04/01 Javascript
jquery新的绑定事件机制on方法的使用方法
2014/04/15 Javascript
一个简单的jquery进度条示例
2014/04/28 Javascript
js点击选择文本的方法
2015/02/09 Javascript
jQuery团购倒计时特效实现方法
2015/05/07 Javascript
JS常用正则表达式总结【经典】
2017/05/12 Javascript
JS实现按钮颜色切换效果
2020/09/05 Javascript
JavaScript适配器模式详解
2017/10/19 Javascript
Angular Renderer (渲染器)的具体使用
2018/05/03 Javascript
Vue props 单向数据流的实现
2018/11/06 Javascript
vue中tab选项卡的实现思路
2018/11/25 Javascript
七行JSON代码把你的网站变成移动应用过程详解
2019/07/09 Javascript
js获取浏览器地址(获取第1个斜杠后的内容)
2019/09/03 Javascript
vuejs+element UI table表格中实现禁用部分复选框的方法
2019/09/20 Javascript
vue实现百度搜索功能
2020/12/28 Javascript
python tkinter canvas 显示图片的示例
2019/06/13 Python
python 整数越界问题详解
2019/06/27 Python
关于Python3 类方法、静态方法新解
2019/08/30 Python
Python PyQt5整理介绍
2020/04/01 Python
Python修改DBF文件指定列
2020/12/19 Python
Python的Tqdm模块实现进度条配置
2021/02/24 Python
CSS3 text shadow字体阴影效果
2016/01/08 HTML / CSS
美丽的珠宝配饰:SmallThings
2019/09/04 全球购物
*p++ 自增p 还是p所指向的变量
2016/07/16 面试题
出纳会计岗位职责
2014/03/12 职场文书
售后求职信范文
2014/03/15 职场文书
2014市国税局对照检查材料思想汇报
2014/09/23 职场文书
2016年元旦主持词
2015/07/06 职场文书
2016年教师节感言
2015/12/09 职场文书
干货:如何写好观后感 !
2019/05/21 职场文书
2019年汽车租赁合同范本!
2019/08/12 职场文书
《鲁滨逊漂流记》之六读后感(4篇)
2019/09/29 职场文书
oracle索引总结
2021/09/25 Oracle