文件操作
文件操作:对文件的增删改查
问什么要使用文件操作
1. 有一些数据:不经常修改,但是又经常被使用,数据量小,使用文件来保存数据(配置文件,xml,session文件)
2. 系统日志文件:把一些系统错误,保存到日志文件供管理员或者程序员去分析.
文件目录的操作
对文件操作必须先找到对应的路径.
文件操作步骤
1. 得到文件路径对应的资源
Opendir:打开一个目录,需要一个路径参数,返回一个资源
2. 需要从资源理获取对应的数据
Readdir:读取,从资源里面读取一个对应的文件,当前文件指针所指向的文件,将文件指针下移一位。返回当前文件的文件名字或者false.可以显示使用资源参数,也可以不提供,因为系统会向上自动寻找文件的路径资源.
目录相关函数
Rewinddir:重置目录资源的指针,回到第一个文件(.)
Closedir:释放文件资源
Scandir:浏览目录,把所有的文件都获得,并存放到一个数组返回
遍历目录
1. 获得路径资源
2. 逐个的读取文件信息
3. 关闭资源
目录操作的原理
Opendir 所做的事情
1. 找到对应的目录
2. 将目录中所以文件全部读入到内存(包含子文件夹下的所有文件)
3. 将目录指针指向第一个文件
Readdir
1. 读取当前指针所指向的文件的文件名
2. 将目录指针向下移动一位
文件相关函数
File_exists : 判断文件是否存在。存在返回true不存在返回false
Is_dir:判断给定的路径是否是一个路径,如果是路径返回true,否则返回false
Is_file:判断给定的路径是否是一个文件,如果是文件返回true,否则返回false
Mkdir:创建文件夹,不能创建同名文件夹(必须保证当前文件夹有PHP所有组权限进行写操作)
Rmdir:删除文件夹,
Getcwd:获取当前操作目录
Chdir:改变当前操作目录,代表进入到目标目录
遍历所有文件夹及子目录
1. 得到一个路径
2. 获得路径资源
3. 获取指针所指向的文件名
4. 判断当前文件是否是一个路径
a) 如果是路径:进入到子目录(改变工作路径)
b) 如果是文件:直接输出
5. 关闭资源
递归
在函数内部调用函数本身
函数用来解决某一类问题,在函数的内部又碰到了之前碰到的一样的问题,接下来调用函数本身来解决该子问题
需求:32个球,外形完全一样,有一个球比其他31个都轻
问题:使用几次可以找到这个球
1. 32