当前位置: 首页 > news >正文

PHP SPL中提供了SplFileInfo和SplFileObject两个类来处理文件操作。

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

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 );
}

转载于:https://my.oschina.net/liuxianglin/blog/806417

相关文章:

  • pg_dump实例详解(备份postgresql和greenplum数据库)
  • GATK使用说明(一)
  • linux应用之apache的源码安装(centos)
  • linux sudo 命令
  • 客户端Socket
  • 一张图看懂开源许可协议,开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别...
  • 画风清奇!盘点各编程语言中有趣的开源项目!
  • 前端学HTTP之报文首部
  • 【干货分享】流程DEMO-制度发文和干部任免
  • [充电]多线程无锁编程--原子计数操作:__sync_fetch_and_add等12个操作
  • Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define ...
  • 安装logstash,elasticsearch,kibana三件套
  • linux系统中如何查看日志(转)
  • 同源序列比对和进化树的绘制(转)
  • textarea字数限制
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • 3.7、@ResponseBody 和 @RestController
  • Javascript设计模式学习之Observer(观察者)模式
  • Material Design
  • Python利用正则抓取网页内容保存到本地
  • React as a UI Runtime(五、列表)
  • React组件设计模式(一)
  • springMvc学习笔记(2)
  • SQLServer之索引简介
  • Terraform入门 - 1. 安装Terraform
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • Zepto.js源码学习之二
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 规范化安全开发 KOA 手脚架
  • 浅谈Golang中select的用法
  • 嵌入式文件系统
  • 区块链技术特点之去中心化特性
  • 山寨一个 Promise
  • 深度学习入门:10门免费线上课程推荐
  • 数组大概知多少
  • 用Python写一份独特的元宵节祝福
  • 阿里云服务器购买完整流程
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • (06)金属布线——为半导体注入生命的连接
  • (13):Silverlight 2 数据与通信之WebRequest
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (ZT)一个美国文科博士的YardLife
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (转载)Google Chrome调试JS
  • .net core 依赖注入的基本用发
  • .NET gRPC 和RESTful简单对比
  • .Net7 环境安装配置
  • @serverendpoint注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)