【PHP学习】文件编程——对目录的操作

什么是文件编程

所谓的文件编程技术,指的就是对==文件==或==目录==的==增删改查操作

可参考菜鸟教程:http://www.runoob.com/php/php-ref-filesystem.html

文件编程的分类

对目录的操作

对文件的操作

对目录的操作

涉及的函数:

  • **设置操作**
  1. mkdir ()创建一个目录
  2. rmdir()删除一个目录
  3. rename()给目录改名或转移目录
  • **查询操作**
  1. opendir(目录全路径) 打开一个目录
  2. readdir(打开的目录资源) 读取目录中的内容
  3. closedir(打开的目录资源) 关闭一个打开的目录
  • **查询辅助操作**
  1. ==realpath==(路径) 将给定的路径转换为绝对路径地址
  2. ==basename==(路径) 返回当前给定路径的基础文件(或文件夹)名部分
  3. ==dirname==(路径) 返回当前给定路径的目录部分
  4. is_dir(全路径) 判断一个给定文件是否是一个目录

    mkdir ()

      注意点:

  1. 0777是文件夹权限、表示用户可读可写可执行。
  2. 把第三个参数设置为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()

  1. 我们可以使用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()经常会用到在项目中需要熟练掌握

猜你喜欢

转载自blog.csdn.net/cc_Salted_fish/article/details/83541517