网站地图    收藏   

主页 > php专栏 > php文件操作 >

php中创建多级目录与删除多级目录和文件 - php文

来源:自学PHP网    时间:2014-11-28 00:07 作者: 阅读:

[导读] 在php中要实现简单的目录创建和删除分别利用mkdir和rmdir这有点像dos中的命令了,但如果我要创建多级目录或删除多级目录中的文件和目录则需要递归来实例了 php中mkdir创建多级目录,代码...

php中创建多级目录与删除多级目录和文件

在php中要实现简单的目录创建和删除分别利用mkdir和rmdir这有点像dos中的命令了,但如果我要创建多级目录或删除多级目录中的文件和目录则需要递归来实例了.

php中mkdir创建多级目录,代码如下:

  1. function mkdirs($dir)   
  2. {  if(!is_dir($dir))   
  3. {  if(!mkdirs(dirname($dir))) 
  4. {  return false;  }   
  5. if(!mkdir($dir,0777)) 
  6. {  return false;  }  }  
  7.  return true;   
  8. }   
  9. //调用方法:mkdirs('div/css/layout'); 

创建多级目录更标准的方法,代码如下:

  1. //检查并创建多级目录 
  2.     function checkDir($path){ 
  3.         $pathArray = explode('/',$path); 
  4.         $nowPath = ''
  5.         array_pop($pathArray); 
  6.         foreach ($pathArray as $key=>$value){ 
  7.             if ( ''==$value ){ 
  8.                 unset($pathArray[$key]); 
  9.             }else
  10.                 if ( $key == 0 ) 
  11.                     $nowPath .= $value
  12.                 else 
  13.                     $nowPath .= '/'.$value
  14.                 if ( !is_dir($nowPath) ){ 
  15.                     if ( !mkdir($nowPath, 0777) ) return false; 
  16.                 } 
  17.             } 
  18.         } 
  19.         return true; 
  20.     } 

删除多级目录方法

在winxp下测试成功,只要php文件编码为gb2312,文件名随意,应该把文件名改为编码为gb2312 就行,代码如下:

  1. <?php  
  2. header("Content-Type:text/html; charset=gb2312");  
  3. if(deleteDir('./复件 复件 复件 复件 复件 复件 复件 复件 复件 复件 复件 aaa'))  
  4. echo "删除成功";  
  5. function deleteDir($dir)  
  6. {  
  7. if (@rmdir($dir)==false && is_dir($dir)) //删除不了,进入删除所有文件  
  8. {  
  9. if ($dp = opendir($dir))  
  10. {  
  11. while (($file=readdir($dp)) != false)  
  12. {  
  13. if($file!='.' && $file!='..')  
  14. //echo $file=$dir.'/'.$file;echo '<br/>';  
  15. $file=$dir.'/'.$file;  
  16. if (is_dir($file)) //是真实目录  
  17. {  
  18. deleteDir($file);  
  19. }else {  
  20. unlink($file);  
  21. }  
  22. }  
  23. }  
  24. closedir($dp);  
  25. }else  
  26. {  
  27. return false;  
  28. }  
  29. }  
  30. if (is_dir($dir) && @rmdir($dir)==false) //是目录删除不了  
  31. return false;  
  32. return true;  
  33. }  
  34. ?> 

递归删除多级目录

同样的思路,php用rmdir和unlink递归删除多级目录的代码:

  1. function rmdirs($dir)   
  2. {   
  3. $d = dir($dir);   
  4. while (false !== ($child = $d->read())){   
  5. if($child != '.' && $child != '..'
  6. {   
  7. if(is_dir($dir.'/'.$child))   
  8. rmdirs($dir.'/'.$child);   
  9. else  
  10. unlink($dir.'/'.$child);  }   
  11. }   
  12. $d->close(); 
  13.  
  14. //调用方法也很简单只要给目录就好   
  15. rmdir($dir);  

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论