什么是文件编程
所谓的文件编程技术,指的就是对==文件==或==目录==的==增删改查操作
可参考菜鸟教程:http://www.runoob.com/php/php-ref-filesystem.html
文件编程的分类
对目录的操作
对文件的操作
对目录的操作
涉及的函数:
- **设置操作**
- mkdir ()创建一个目录
- rmdir()删除一个目录
- rename()给目录改名或转移目录
- **查询操作**
- opendir(目录全路径) 打开一个目录
- readdir(打开的目录资源) 读取目录中的内容
- closedir(打开的目录资源) 关闭一个打开的目录
- **查询辅助操作**
- ==realpath==(路径) 将给定的路径转换为绝对路径地址
- ==basename==(路径) 返回当前给定路径的基础文件(或文件夹)名部分
- ==dirname==(路径) 返回当前给定路径的目录部分
- is_dir(全路径) 判断一个给定文件是否是一个目录
mkdir ()
注意点:
- 0777是文件夹权限、表示用户可读可写可执行。
- 把第三个参数设置为true,就可以递归的去创建目录及目录下的子目录【递归创建目录就是目录下还有目录的意思】
//创建dir1目录和dir2目录
$re = mkdir('./dir1');
var_dump( $re ); echo '<br/>'; //bool(true)
$re = mkdir('F:/home/class/day13/code/dir2');
var_dump( $re ); //bool(true)
//递归创建目录dir3/dir3_1/dir3_1_1
//$re = mkdir('./dir3/dir3_1/dir3_1_1');//默认情况下是不支持的
//var_dump( $re );
$re = mkdir('./dir3/dir3_1/dir3_1_1', 0777, true);//把第三个参数设置为true,就可以递归的去创建目录及目录下的子目录
var_dump( $re );
rename()
注意点;我们还可以使用rename将某个目录转移到另外一个目录中;
#将dir1的目录名改为dir100
$re = rename('./dir1', './dir100');
var_dump( $re );
#将dir2目录转移到dir3目录中,并且重命名为dir200
$re = rename('./dir2', './dir3/dir200');
rmdir()
-
我们可以使用rmdir删除某个目录;
2.删除的目录必须是没有内容的目录才能成功删除;
opendir() 打开一个目录 、
readdir() 读取目录中的内容
#打开一个目录
$op = opendir('./demo');
var_dump( $op ); echo '<br/>';
#读取目录内容
$rd = readdir($op);
var_dump( $rd ); echo '<br/>';//第1次执行readdir的输出
$rd = readdir($op);
var_dump( $rd ); echo '<br/>';//第2次执行readdir的输出
$rd = readdir($op);
var_dump( $rd ); echo '<br/>';//第3次执行readdir的输出
$rd = readdir($op);
var_dump( $rd ); echo '<br/>';//第4次执行readdir的输出
$rd = readdir($op);
var_dump( $rd ); echo '<br/>';//第5次执行readdir的输出
$rd = readdir($op);
var_dump( $rd ); echo '<br/>';//第6次执行readdir的输出
$rd = readdir($op);
var_dump( $rd ); echo '<br/>';//第7次执行readdir的输出
$rd = readdir($op);
var_dump( $rd ); echo '<br/>';//第8次执行readdir的输出
$rd = readdir($op);
var_dump( $rd ); echo '<br/>';//第9次执行readdir的输出
$rd = readdir($op);
var_dump( $rd ); echo '<br/>';//第10次执行readdir的输出
$rd = readdir($op);
var_dump( $rd ); echo '<br/>';//第11次执行readdir的输出
$rd = readdir($op);
var_dump( $rd ); echo '<br/>';//第12次执行readdir的输出
输出效果
注意点:为什么出现 .和..文件夹呢??
因为每个非根盘目录下都有这两个文件。
在cmd下用dir命令随便查询一个非根盘目录都可以看到.与..文件夹
realpath()将给定的路径转换为绝对路径地址
下面出现了的:
var_dump(realpath("./")); //将相对路径转化成绝对路径:
./:当前相对路径
dirname==(路径) 返回当前给定路径的目录部分
总结:dirname将会获得一个路径的目录部分。与realpath()有很大的区别,下图可以验证:
dirname()经常会用到在项目中需要熟练掌握