时间:2014年3月27日文件和目录操作函数
主要内容: 目录操作:打开、读取、关闭、创建、重命名、删除 文件操作:打开、读、写、关闭、重命名、删除 信息获取函数 filemtime() filesize() file_exists() is_dir() |
一、读取文件内容,赋值给一个字符串
1.
file_get_contents — 获取一个文件或网络资源的内容,保存为一个字符串
file_put_contents — 将一个字符串写入文件
$file = "./a.txt"; $string = file_get_contents($file); $url="http://www.baidu.com"; echo file_get_contents($url); |
file_get_contents是读取文件或者网络资源的内容,比较快捷,封装了打开,关闭操作
如果处理上百M 的文件,慎重使用
如果获取的文件不存在,将报warning
将读出的内容,写入到文件,也是快捷函数,封装了打开,写入,关闭的细节
$file = "./a.txt"; $string = file_get_contents($file); file_put_contents("./b.txt", $string); |
如果指定的文件不存在,则自动创建
最简单的小偷程序
<?php $url = ""; $html = file_get_contents($url); if(file_put_contents('news.html', $html)){ echo "获取成功"; } else{ echo "获取失败"; } ?> |
2
$handle = fopen($file,’r’) 打开一个文件,返回一个句柄资源
'r' |
只读方式打开,将文件指针指向文件头。 |
'r+' |
读写方式打开,将文件指针指向文件头。 |
'w' |
写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 |
'w+' |
读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 |
'a' |
写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 |
'a+' |
读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 |
$content = fread($handle,$length) 从文件指针$handle读取文件,读取长度为$length,返回所读取的字符串
$length = fwrite($handle,$string[,$length]) 写入文件,返回写入的字符数,出错返回false
成功与否,与打开的方式有关
从文件头,写入时,覆盖相等字节的字符
fclose($handle) 关闭一个已经打开的文件指针,成功返回true,失败返回false
w:写入模式,fread()读不了,并把文件大小截为0,即文件被清空,文件指针停于开头处 a模式:追加模式打开,能写,并把文件指针停在文件的最后 |
问题:用文件操作函数,处理客户名单,每行一个
换行符 :win \r\n unix \n mac \r
1用file_get_contents
$file = "./custom.txt"; $cont = file_get_contents($file); print_r(explode("\n", $cont)); |
2.
fgets — 从文件指针中读取一行
//打开每次读一行 //fgets()函数,每次读一行 //模式采用rb表示以二进制读取 $file = "./custom.txt"; $handle = fopen($file, "rb"); echo fgets($handle); echo fgets($handle); echo fgets($handle); //文件指针一直在移动 //使用feof,end of file判断是否到文件结尾 //feof — 测试文件指针是否到了文件结束的位置 while (!feof($handle)) { echo fgets($handle)."<br/>"; } |
3.
file — 把整个文件读入一个数组中
//file()函数,按行拆成数组,返回数组 //和file_get_contents相同 //如一次读入较多数据,大文件慎用 $file = "./custom.txt"; $arr = file($file); print_r($arr); |
二 判断文件是否存在,获取文件的创建时间
/**** 判断文件是否存在 判断文件的创建时间,修改时间 filemtime返回值为时间戳 ****/ $file = "./a.txt"; if (file_exists($file)) { echo "上次修改时间是:".date("y-m-d h:i:s",filemtime($file)) ; }else{ echo “文件不存在”; } /* 在smarty中,控制文件缓存时间 */ |
三 文件操作导入csv文件
1.操作excel,有开源的phpExcel开源的类
2. 如果是简单的导入到数据库,可以先转化为csv文件,
Csv是一种简单的用逗号分隔的文件格式
$file = "score.csv"; $hanle = fopen($file, "rb"); /*//1.每次读取一行,每一行用逗号拆成数组 while (!feof($hanle)) { $row = fgets($hanle); print_r(explode(",", $row)); }*/ //2.从文件指针读取csv并解析 //fgetcsv(handle)函数,已经封装了csv的文件相关规范 while (!feof($hanle)) { $row = fgetcsv($hanle); print_r($row); } |
四 批量处理文件内容
在一堆文件中, a.txt b.txt c.txt 删除包含非法词语fuck的文件或者小于10个字节的文件 思路:循环文件名->判断大小->读内容->判断是否有非法词语 filesize()函数,读取文件大小 使用unlink()函数,删除文件 rmdir()删除目录 ****/ foreach(array("a.txt","b.txt","c.txt","d.txt") as $v){ $file = "./article/".$v; if (filesize($file)<10) { unlink($file); echo $file."大小不足10字节已删除"; continue; } $cont = file_get_contents($file); if (stripos($cont, "fuck") !==false) { unlink($file); echo $file."有不文明用语,已被删除"; } } |
目录操作函数:
目录下有很多的文件, a.txt b.txt c.txt 匹配文件:glob(pattern)寻找与模式匹配的文件路径 ****/ //print_r(glob("./article/*.txt")); //* 是通配符 |
想把一个目录下文件都打印出来
打开目录:fopen()
读取目录:readdir()
创建目录:mkdir()
删除目录:rmdir()
关闭目录句柄:closedir()
判断是否是目录:is_dir()
$path = "./misc"; $handle = opendir($path); // 返回的是资源句柄 /*echo readdir($handle);//读取目录,目录指针后移 echo readdir($handle); echo readdir($handle); */ /* . 当前目录别名,是虚拟的目录 .. 上级目录别名 可以使用while循环,读取所有目录 */ while (($filename = readdir($handle))!== false) { echo $filename."<br/>"; if (is_dir($filename)) { echo "是目录"; } } closedir($handle); |
创建目录
foreach(array("1","2","3","4") as $v){ $path ="./misc/".$v; if (!file_exists($path)) {//创建目录,先判断目录是否已经存在 if (mkdir($path)) { echo $path."创建成功"; } else { echo $path."创建失败"; } } else { echo $path."目录已经存在"; } }*/ |
删除目录:不能删除非空目录,只能删除非空目录
foreach(array("a","1","2") as $v){ $path ="./misc/".$v; if (file_exists($path) && is_dir($path)) { if (rmdir($path)) { echo $path."删除成功<br/>"; } else { echo $path."删除失败<br/>"; } } else { echo $path."目录不存在<br/>"; } } |
因此如果一个目录非空,该如何删除
转载于:https://blog.51cto.com/duguodong/1386382
时间:2014年3月27日文件和目录操作函数相关推荐
- 千寻浏览器 1.0 Beta 1(524)(2014年5月27日)
千寻浏览器--又一款新生浏览器今天进入各位浏览迷的视野.千寻浏览器基于IE内核,据传是由百度浏览器的上海团队操刀,在功能定位上,与目前的QQ浏览器有些相似. 千寻来自官方的解释:寻,追寻,探索,又是古 ...
- 王晋康 - 替天行道 ▪ 王晋康科幻小说精选集2(2014年3月27日)
<替天行道 ▪ 王晋康科幻小说精选集2> 作 者:王晋康 译 者: 系 列:王晋康科幻小说精选集 出 版:时代文艺出版社 字 数:212千字 阅读完成:2014年3月27日 转载于:htt ...
- 时间:2014年3月27日20:08:01网站建表实战与优化意识
建表: SNS社交网站: 会员表:member Mysql中没有布尔型,相当于tinyint类型 false 就是0 其他都是true 大小 字节 列名称 列类型 默认值 是否主键 4 编号id in ...
- 22年最后一次PMP考试时间定了-11月27日,进来了解相关内容信息
2022年11月PMP具体考试时间定了:11月27日 考试分为[上午]和[下午]两场,上午是新报名考试考试,下午是之前6.7.8月申请缓考以及未通过乃至延期的考生考试. 这里是PMP相关发布的通知: ...
- python中和操作目录相关的函数包括_python文件和目录操作函数小结
<python 与数据挖掘 > 一 导读 前 言为什么要写本书?Python是什么? Python是一种带有动态语义的.解释性的.面向对象的高级编程语言.其高级内置数据结构,结合动态类型和 ...
- php进入目录,php文件,文件夹(目录)操作函数总结
本文章来给各位同学总结一下在php中一些常用的文件夹/文件目录操作函数总结,这些只是简单的介绍一些基础方法做个备注. 1.创建目录(mkdir) bool mkdir (string $pathnam ...
- 计科1111-1114班第三周讲义、课外作业(截止日期:2014年3月27日23点-周四晚,学委飞信通知同学)
第三周,我们主要探讨了 哈希算法 与 分治法.分治法是一个通用的算法框架,很多我们日常生活中接触到的算法都可以归类到分治法中. 本周重点 1. 哈希算法及其应用--MD5.大家应该明白哈希算法的主要三 ...
- 番茄时间--2018年1月27日
上午10点醒,在宿舍逛淘宝买鞋,牛仔裤. 番茄时间:19点42到20点07 目标:完成第四章的符号匹配和延迟缓冲 完成情况:完成 番茄时间:23点06到23点31 目标:码完求值算法 完成情况:未完成 ...
- 2014年10月27日
流行语抹杀我们的个人特质 网络.春晚.电影.电视等媒体,都是制造流行语言的工厂.那些石破天惊的句子或者词语,从一开始就注定被千万人重复使用的命运.它们和使用者一起,为平静的生活增添了不少的乐趣与色彩. ...
最新文章
- 深入理解html5系列-文本标签
- 吴恩达深度学习课程deeplearning.ai课程作业:Class 1 Week 3 assignment3
- db2 空值转换函数_Hive常见函数的使用
- Spring Boot整合thymeleaf
- NodeJs将项目上传至服务器
- Vue3学习之第二节:ref函数、reactive函数
- 自学Python6个月,你能找到工作吗?
- JavaScript学习(七)
- Android Palette吸色原理及源码解析
- 时间序列模型ARIMA -- 唐宇迪
- Dell台式计算机BIOS放电,戴尔bios设置电池修复 笔记本电脑电池bios设置图解方法...
- excel 中vb组合框_Excel 2013中的工作表组合框问题
- CorelDRAW2022下载附带序列号安装教程
- Duality-Gated Mutual Condition Network for RGBT Tracking
- 分享java旷课版的SSM框架源码
- Win7系统还原,创建还原点,永久保存自定义还原点,不被删除
- 获取Winform窗体或Panel下包含的所有控件、根据控件名称获取指定控件
- “Apache官网打不开”怎么办?
- AMD intel CPU 型号对比
- 面对ChatGPT的挑战,谷歌CEO怒发Bard调教指南:别慌,咱向来是弯道超车
热门文章
- python学习手册笔记——20.迭代和解析
- bzoj3218: a + b Problem
- 文本分类实战(三)—— charCNN模型
- redis学习之常用数据类型
- 关于一个简易的实时内存监控系统的思维导图
- 敏捷开发一千零一问系列之一:序言及解决问题的心法(无我)
- 《LeetCode力扣练习》第96题 不同的二叉搜索树 Java
- c#_未将对象引用设置到对象的实例
- c#的chart标题_C#中CHART画图
- centos mysql stop_[MySQL] 在Centos下的启动和关闭 | 学步园