VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > PHP >
  • 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);  
  16.  

出处:http://www.phpfensi.com/php/20140801/4101.html


相关教程