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 Smarty模板生成html文档的方法
Apr 12 PHP
关于session在PHP5的配置文件中的详细设置参数说明
Apr 20 PHP
PHP中redis的用法深入解析
Feb 20 PHP
PHP中使用register_shutdown_function函数截获fatal error示例
Apr 21 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
Jan 11 PHP
cakephp常见知识点汇总
Feb 24 PHP
php分页查询mysql结果的base64处理方法示例
May 18 PHP
Laravel框架中Blade模板的用法示例
Aug 30 PHP
PHP设计模式之原型模式定义与用法详解
Apr 03 PHP
ThinkPHP防止重复提交表单的方法实例分析
May 10 PHP
PHP生成指定范围内的N个不重复的随机数
Mar 18 PHP
PHP示例演示发送邮件给某个邮箱
Apr 03 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 用sock技术发送邮件的函数
2007/07/21 PHP
基于Zookeeper的使用详解
2013/05/02 PHP
phpmyadmin config.inc.php配置示例
2013/08/27 PHP
Yii中CGridView关联表搜索排序方法实例详解
2014/12/03 PHP
php生成excel列名超过26列大于Z时的解决方法
2014/12/29 PHP
PHP PDOStatement::rowCount讲解
2019/02/01 PHP
jQuery使用手册之 事件处理
2007/03/24 Javascript
jquery实现简单易懂的图片展示小例子
2013/11/21 Javascript
jQuery模拟物体自由落体运动(附演示与demo源码下载)
2016/01/21 Javascript
AngularJS表单详解及示例代码
2016/08/17 Javascript
AJAX和jQuery动态加载数据的实现方法
2016/12/05 Javascript
通过Ajax使用FormData对象无刷新上传文件方法
2016/12/08 Javascript
微信小程序 详解下拉加载与上拉刷新实现方法
2017/01/13 Javascript
jQuery实现文档树效果
2017/02/20 Javascript
为Jquery EasyUI 组件加上清除功能的方法(详解)
2017/04/13 jQuery
Vue+Element使用富文本编辑器的示例代码
2017/08/14 Javascript
Bootstrap Fileinput 4.4.7文件上传实例详解
2018/07/25 Javascript
微信小程序学习笔记之本地数据缓存功能详解
2019/03/29 Javascript
Vue状态模式实现窗口停靠功能(灵动、自由, 管理后台Admin界面)
2020/03/06 Javascript
python解决网站的反爬虫策略总结
2016/10/26 Python
Python异常处理操作实例详解
2018/05/10 Python
Python通过TensorFlow卷积神经网络实现猫狗识别
2019/03/14 Python
python爬虫 爬取58同城上所有城市的租房信息详解
2019/07/30 Python
详解使用Python下载文件的几种方法
2019/10/13 Python
pytorch::Dataloader中的迭代器和生成器应用详解
2020/01/03 Python
HTML5新特性之type=file文件上传功能
2018/02/02 HTML / CSS
Mavi牛仔裤美国官网:土耳其著名牛仔品牌
2016/09/24 全球购物
应聘医学检验人员自荐信
2013/09/27 职场文书
公务员年总结的自我评价
2013/10/25 职场文书
材料采购员岗位职责
2013/12/17 职场文书
工作交流会欢迎词
2014/01/12 职场文书
初中化学教学反思
2014/01/23 职场文书
四查四看自我剖析材料
2014/09/19 职场文书
党员组织生活会发言材料
2014/10/17 职场文书
《用字母表示数》教学反思
2016/02/17 职场文书
2016年劳模先进事迹材料
2016/02/25 职场文书