主要内容:

目录操作:打开、读取、关闭、创建、重命名、删除

文件操作:打开、读、写、关闭、重命名、删除

信息获取函数 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. 千寻浏览器 1.0 Beta 1(524)(2014年5月27日)

    千寻浏览器--又一款新生浏览器今天进入各位浏览迷的视野.千寻浏览器基于IE内核,据传是由百度浏览器的上海团队操刀,在功能定位上,与目前的QQ浏览器有些相似. 千寻来自官方的解释:寻,追寻,探索,又是古 ...

  2. 王晋康 - 替天行道 ▪ 王晋康科幻小说精选集2(2014年3月27日)

    <替天行道 ▪ 王晋康科幻小说精选集2> 作 者:王晋康 译 者: 系 列:王晋康科幻小说精选集 出 版:时代文艺出版社 字 数:212千字 阅读完成:2014年3月27日 转载于:htt ...

  3. 时间:2014年3月27日20:08:01网站建表实战与优化意识

    建表: SNS社交网站: 会员表:member Mysql中没有布尔型,相当于tinyint类型 false 就是0 其他都是true 大小 字节 列名称 列类型 默认值 是否主键 4 编号id in ...

  4. 22年最后一次PMP考试时间定了-11月27日,进来了解相关内容信息

    2022年11月PMP具体考试时间定了:11月27日 考试分为[上午]和[下午]两场,上午是新报名考试考试,下午是之前6.7.8月申请缓考以及未通过乃至延期的考生考试. 这里是PMP相关发布的通知: ...

  5. python中和操作目录相关的函数包括_python文件和目录操作函数小结

    <python 与数据挖掘 > 一 导读 前 言为什么要写本书?Python是什么? Python是一种带有动态语义的.解释性的.面向对象的高级编程语言.其高级内置数据结构,结合动态类型和 ...

  6. php进入目录,php文件,文件夹(目录)操作函数总结

    本文章来给各位同学总结一下在php中一些常用的文件夹/文件目录操作函数总结,这些只是简单的介绍一些基础方法做个备注. 1.创建目录(mkdir) bool mkdir (string $pathnam ...

  7. 计科1111-1114班第三周讲义、课外作业(截止日期:2014年3月27日23点-周四晚,学委飞信通知同学)

    第三周,我们主要探讨了 哈希算法 与 分治法.分治法是一个通用的算法框架,很多我们日常生活中接触到的算法都可以归类到分治法中. 本周重点 1. 哈希算法及其应用--MD5.大家应该明白哈希算法的主要三 ...

  8. 番茄时间--2018年1月27日

    上午10点醒,在宿舍逛淘宝买鞋,牛仔裤. 番茄时间:19点42到20点07 目标:完成第四章的符号匹配和延迟缓冲 完成情况:完成 番茄时间:23点06到23点31 目标:码完求值算法 完成情况:未完成 ...

  9. 2014年10月27日

    流行语抹杀我们的个人特质 网络.春晚.电影.电视等媒体,都是制造流行语言的工厂.那些石破天惊的句子或者词语,从一开始就注定被千万人重复使用的命运.它们和使用者一起,为平静的生活增添了不少的乐趣与色彩. ...

最新文章

  1. 深入理解html5系列-文本标签
  2. 吴恩达深度学习课程deeplearning.ai课程作业:Class 1 Week 3 assignment3
  3. db2 空值转换函数_Hive常见函数的使用
  4. Spring Boot整合thymeleaf
  5. NodeJs将项目上传至服务器
  6. Vue3学习之第二节:ref函数、reactive函数
  7. 自学Python6个月,你能找到工作吗?
  8. JavaScript学习(七)
  9. Android Palette吸色原理及源码解析
  10. 时间序列模型ARIMA -- 唐宇迪
  11. Dell台式计算机BIOS放电,戴尔bios设置电池修复 笔记本电脑电池bios设置图解方法...
  12. excel 中vb组合框_Excel 2013中的工作表组合框问题
  13. CorelDRAW2022下载附带序列号安装教程
  14. Duality-Gated Mutual Condition Network for RGBT Tracking
  15. 分享java旷课版的SSM框架源码
  16. Win7系统还原,创建还原点,永久保存自定义还原点,不被删除
  17. 获取Winform窗体或Panel下包含的所有控件、根据控件名称获取指定控件
  18. “Apache官网打不开”怎么办?
  19. AMD intel CPU 型号对比
  20. 面对ChatGPT的挑战,谷歌CEO怒发Bard调教指南:别慌,咱向来是弯道超车

热门文章

  1. python学习手册笔记——20.迭代和解析
  2. bzoj3218: a + b Problem
  3. 文本分类实战(三)—— charCNN模型
  4. redis学习之常用数据类型
  5. 关于一个简易的实时内存监控系统的思维导图
  6. 敏捷开发一千零一问系列之一:序言及解决问题的心法(无我)
  7. 《LeetCode力扣练习》第96题 不同的二叉搜索树 Java
  8. c#_未将对象引用设置到对象的实例
  9. c#的chart标题_C#中CHART画图
  10. centos mysql stop_[MySQL] 在Centos下的启动和关闭 | 学步园