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 相关文章推荐
使用 PHPMAILER 发送邮件实例应用
Nov 07 PHP
探讨php中遍历二维数组的几种方法详解
Jun 08 PHP
浅析PHP页面局部刷新功能的实现小结
Jun 21 PHP
php获取文件大小的方法
Feb 26 PHP
PHP自定session保存路径及删除、注销与写入的方法
Nov 18 PHP
php结合web uploader插件实现分片上传文件
May 10 PHP
3种方法轻松处理php开发中emoji表情的问题
Jul 18 PHP
php技巧小结【推荐】
Jan 19 PHP
php分页查询的简单实现代码
Mar 14 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
Feb 06 PHP
PHP单文件上传原理及上传函数的封装操作示例
Sep 02 PHP
PHP判断是否是json字符串
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 imagecreatefrombmp 从BMP文件或URL新建一图像
2012/07/16 PHP
php实现把url转换迅雷thunder资源下载地址的方法
2014/11/07 PHP
php实现读取手机客户端浏览器的类
2015/01/09 PHP
PHP超全局数组(Superglobals)介绍
2015/07/01 PHP
php并发加锁示例
2016/10/17 PHP
详细分析PHP 命名空间(namespace)
2020/06/30 PHP
JavaScript在XHTML中的用法详解
2013/04/11 Javascript
兼容IE和FF的图片上传前预览js代码
2013/05/28 Javascript
jquery实现图片左右切换的方法
2015/05/07 Javascript
JavaScript中用toString()方法返回时间为字符串
2015/06/12 Javascript
vuex实现简易计数器
2016/10/27 Javascript
javascript实现去除HTML标签的方法
2016/12/26 Javascript
jQuery访问浏览器本地存储cookie、localStorage和sessionStorage的基本用法
2017/10/20 jQuery
深入了解JavaScript 的 WebAssembly
2019/06/15 Javascript
vue实现导航菜单和编辑文本的示例代码
2020/07/04 Javascript
解决qrcode.js生成二维码时必须定义一个空div的问题
2020/07/09 Javascript
浅析 Vue 3.0 的组装式 API(一)
2020/08/31 Javascript
vue v-on:click传递动态参数的步骤
2020/09/11 Javascript
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS TNC
2018/03/30 DOTA
python 链接和操作 memcache方法
2017/03/04 Python
快速了解python leveldb
2018/01/18 Python
python3 线性回归验证方法
2019/07/09 Python
Python如何读取文件中图片格式
2020/01/13 Python
GDAL 矢量属性数据修改方式(python)
2020/03/10 Python
基于Python脚本实现邮件报警功能
2020/05/20 Python
使用keras内置的模型进行图片预测实例
2020/06/17 Python
如何利用python生成MD5并去重
2020/12/07 Python
浅析CSS3中鲜为人知的属性:-webkit-tap-highlight-color
2017/01/12 HTML / CSS
Omio法国:全欧洲低价大巴、火车和航班搜索和比价
2017/11/13 全球购物
英国女性时尚品牌:Apricot
2018/12/04 全球购物
数学专业推荐信范文
2013/11/21 职场文书
文明村创建实施方案
2014/03/27 职场文书
专家推荐信模板
2014/05/09 职场文书
高中校园广播稿
2014/10/21 职场文书
施工现场安全管理制度
2015/08/05 职场文书
IDEA中sout快捷键无效问题的解决方法
2022/07/23 Java/Android