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模拟SQL Server的两个日期处理函数
Oct 09 PHP
php 显示指定路径下的图片
Oct 29 PHP
phpMyadmin 用户权限中英对照
Apr 02 PHP
php中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
May 04 PHP
PHP实现文件下载断点续传详解
Oct 15 PHP
微信公众平台之快递查询功能用法实例
Apr 14 PHP
最新最全PHP生成制作验证码代码详解(推荐)
Jun 12 PHP
Yii2中使用join、joinwith多表关联查询
Jun 30 PHP
PHP+ajax实现获取新闻数据简单示例
May 08 PHP
laravel-admin 实现给grid的列添加行数序号的方法
Oct 08 PHP
laravel利用中间件做防非法登录和权限控制示例
Oct 21 PHP
Thinkphp 框架扩展之类库扩展操作详解
Apr 23 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和ACCESS写聊天室(九)
2006/10/09 PHP
认识并使用PHP超级全局变量
2010/01/26 PHP
php读取图片内容并输出到浏览器的实现代码
2013/08/08 PHP
php实现保存submit内容之后禁止刷新
2014/03/19 PHP
PHP中捕获超时事件的方法实例
2015/02/12 PHP
js+xml生成级联下拉框代码
2012/07/24 Javascript
jquery如何扑捉回车键触发的事件
2014/04/24 Javascript
jquery操作angularjs对象
2015/06/26 Javascript
jQuery超简单选项卡完整实例
2015/09/26 Javascript
浅析jquery如何判断滚动条滚到页面底部并执行事件
2016/04/29 Javascript
Asp.Net之JS生成分页条的方法
2016/11/23 Javascript
Vue-resource实现ajax请求和跨域请求示例
2017/02/23 Javascript
flag和jq on 的绑定多个对象和方法(必看)
2017/02/27 Javascript
js常用的继承--组合式继承
2017/03/06 Javascript
关于webpack2和模块打包的新手指南(小结)
2017/08/07 Javascript
html中通过JS获取JSON数据并加载的方法
2017/11/30 Javascript
React中阻止事件冒泡的问题详析
2019/04/12 Javascript
JS正则表达式封装与使用操作示例
2019/05/15 Javascript
NodeJS 文件夹拷贝以及删除功能
2019/09/03 NodeJs
如何通过shell脚本自动生成vue文件详解
2019/09/10 Javascript
[02:00]最后,我终于出了辉耀
2018/03/27 DOTA
[09:34]2018DOTA2国际邀请赛寻真——永不放弃的iG
2018/08/14 DOTA
[02:49:21]2019完美盛典全程录像
2019/12/08 DOTA
跟老齐学Python之眼花缭乱的运算符
2014/09/14 Python
Python+Wordpress制作小说站
2017/04/14 Python
使用Django启动命令行及执行脚本的方法
2018/05/29 Python
python抖音表白程序源代码
2019/04/07 Python
DRF框架API版本管理实现方法解析
2020/08/21 Python
大专自我鉴定范文
2013/10/01 职场文书
酒店中秋节活动方案
2014/01/31 职场文书
群众路线学习心得体会范文
2014/11/05 职场文书
党员个人自我评价
2015/03/03 职场文书
企业年会祝酒词
2015/08/11 职场文书
教育教学工作反思
2016/02/24 职场文书
python实现MD5进行文件去重的示例代码
2021/07/09 Python
MongoDB支持的索引类型
2022/04/11 MongoDB