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读取数据库信息的几种方法
May 24 PHP
探讨PHP删除文件夹的三种方法
Jun 09 PHP
PHP json_encode中文乱码问题的解决办法
Sep 09 PHP
php简单实现sql防注入的方法
Apr 22 PHP
php简单实现短网址(短链)还原的方法(测试可用)
May 09 PHP
非常实用的php验证码类
May 15 PHP
php curl常用的5个经典例子
Jan 20 PHP
PHP 获取指定地区的天气实例代码
Feb 08 PHP
PHP使用正则表达式实现过滤非法字符串功能示例
Jun 04 PHP
php菜单/评论数据递归分级算法的实现方法
Aug 01 PHP
PHP使用PDO 连接与连接管理操作实例分析
Apr 21 PHP
php 防护xss,PHP的防御XSS注入的终极解决方案
Apr 01 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 fgetcsv 定义和用法(附windows与linux下兼容问题)
2012/05/29 PHP
控制PHP的输出:缓存并压缩动态页面
2013/06/11 PHP
php中的PHP_EOL换行符详细解析
2013/10/26 PHP
thinkPHP统计排行与分页显示功能示例
2016/12/02 PHP
yii框架数据库关联查询操作示例
2019/10/14 PHP
Exjs 入门篇
2010/04/07 Javascript
JavaScript游戏之是男人就下100层代码打包
2010/11/08 Javascript
JS中toFixed()方法引起的问题如何解决
2012/11/20 Javascript
Get中文乱码IE浏览器Get中文乱码解决方案
2013/12/26 Javascript
用javascript替换URL中的参数值示例代码
2014/01/27 Javascript
Javascript 按位与赋值运算符 (&=)使用介绍
2014/02/04 Javascript
浅谈js中变量初始化
2015/02/03 Javascript
javascript属性访问表达式用法分析
2015/04/25 Javascript
javascript中return,return true,return false三者的用法及区别
2015/11/17 Javascript
jQuery validate插件submitHandler提交导致死循环解决方法
2016/01/21 Javascript
AngularJS控制器继承自另一控制器
2016/05/09 Javascript
在Docker快速部署Node.js应用的详细步骤
2016/09/02 Javascript
Bootstrap3 datetimepicker控件使用实例
2016/12/13 Javascript
Vue iview-admin框架二级菜单改为三级菜单的方法
2018/07/03 Javascript
Python 获取主机ip与hostname的方法
2018/12/17 Python
图文详解python安装Scrapy框架步骤
2019/05/20 Python
Python使用GitPython操作Git版本库的方法
2020/02/29 Python
pycharm通过anaconda安装pyqt5的教程
2020/03/24 Python
Python实现冒泡排序算法的完整实例
2020/11/04 Python
boostrap modal 闪现问题的解决方法
2020/09/01 HTML / CSS
给幼儿园老师的表扬信
2014/01/19 职场文书
上课说话检讨书大全
2014/01/22 职场文书
素质拓展感言
2014/01/29 职场文书
应届中专生自荐书范文
2014/02/13 职场文书
查摆剖析材料范文
2014/09/30 职场文书
倡议书的格式写法
2015/04/28 职场文书
2016年学校爱国卫生月活动总结
2016/04/06 职场文书
2019年家电促销广告语集锦
2019/10/21 职场文书
(开源)微信小程序+mqtt,esp8266温湿度读取
2021/04/02 Javascript
详解Vue项目的打包方式(生成dist文件)
2022/01/18 Vue.js
python获取带有返回值的多线程
2022/05/02 Python