目录函数库函数补充
mkdir(路径);//创建这个目录 file_exits();//判断文件/目录是否存在 返回值为布尔值。
我们来尝试创建目录fkwebs,看看这段代码怎么写。
<?php $path="fkwebs";//路径信息 if(!file_exits($path)){ mkdir($path);}else{echo"目录特么的已经存在";} ?>
这怎么是小菜一碟啊?是不是有一种要揍我的冲动,停下,你要打我我可是要叫的哦~ 来点有意思的。
创建多级目录:
这个在很多的方面都会用到,创建多级目录就是类似于 创建aa/bb/cc,这样的目录,一层层下去树目录的方式。在实现过程中,我们要先创建 aa ,在aa下创建文件夹 bb ,bb下创建 cc。那么我们可以分析到目录的层层创建关系。
<?php $path="aa/bb/cc";//目录地址 $arr=explode("/",$path);//用斜杠分隔资源返回数组 foreach($arr as $key=>$val){ if($key==0){$str=$arr[0];} //如果遍历后只有KEY=0一层目录,赋值取出value (目录名称) else{$str=$str."/".$val; }//拼接 if(!file_exits($str)) {$mkdir($str);} //文件目录不存在则创建目录 ?>
查询目录文件:
rename(旧,新);//重命名目录
opendir($path);// 打开目录,返回值为resource。
readdir($path);//读取目录条目
closedir($path)//关闭目录
<?php $dirs=openfile("text"); //打开text目录 while($file=readdir($dirs!)==false){ //如果读取函数成功则继续执行 echo"filename".$file."<br>"; } closedir($dirs); //关闭目录资源 ?>
上面的代码段就是把text目录下的子文件元素全部列出,这里的原理跟遍历数组取出string相似,执行一次取出一条。
递归删除目录:
很多公司的面试经典试题,这个貌似很经典,比如说我有个aa文件夹,我文件夹子目录中有文件夹还有文件………依次分布下去了,在win系统里我们一个删除就全部删掉了,那么PHP重如何实现删除呢?因为目录非空我们不能简单地用rmdir();实现。
<?php $path="aa";//指定删除目录 recursive($path);//调用自定义函数 function recursive ($pa){ $handle=opendir($path);//打开目录 while($file=readdir($handle)!==false){ if($file!="."&&$file!=".."){ //排除本级和上级目录 $file=$path."/".$file; if(is_dir($file)){ recursive($pa);//调用自身重新循环 }else{ unlink($file); //删除文件 } } } closedir($handle);//关闭目录 rmdir($handle);//删除目录(文件夹) } ?>
后记:
困死,没有后记的后记才是真的后记…………