PHP—目录函数库递归应用

PHP学习 cyanprobe 9年前 (2015-07-20) 3447次浏览 已收录 0个评论

 目录函数库函数补充

mkdir(路径);//创建这个目录  file_exits();//判断文件/目录是否存在 返回值为布尔值。

我们来尝试创建目录fkwebs,看看这段代码怎么写。

2015-07-20_234951

 <?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);//删除目录(文件夹)
}
?>

后记:

困死,没有后记的后记才是真的后记…………


CyanProbe , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP—目录函数库递归应用
喜欢 (2)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址