程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP下幾種刪除目錄的方法總結

PHP下幾種刪除目錄的方法總結

編輯:關於PHP編程

呵呵,忽然一個朋友問我如何刪除目錄,比如下面有文件呢,我說用遞規呀,他說太慢了。於是就總結出了下面幾種辦法。

1。遞規法: //我提供,好像有點不對,沒測試

deleteDir($dir)
{
 if (rmdir($dir)==false && is_dir($dir)) {
  if ($dp = opendir($dir)) {
   while (($file=readdir($dp)) != false) {
    if (is_dir($file) && $file!='.' && $file!='..') {
     deleteDir($file);
    } else {
     unlink($file);
    }
   }
   closedir($dp);
  } else {
   exit('Not permission');
  }
 } 
}


2。系統調用法     //大師兄提供

function del_dir($dir)
{
 if(strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
     $str = "rmdir /s/q " . $dir;
 } else {
     $str = "rm -Rf " . $dir;
 }
}


3。循環法   //from: http://www.knowsky.com/1148.html

function deltree($pathdir) 

echo $pathdir;//我調試時用的 

if(is_empty_dir($pathdir))//如果是空的 
    { 
    rmdir($pathdir);//直接刪除 
    } 
    else 
    {//否則讀這個目錄,除了.和..外 
        $d=dir($pathdir); 
        while($a=$d->read()) 
        { 
        if(is_file($pathdir.'/'.$a) && ($a!='.') && ($a!='..')){unlink($pathdir.'/'.$a);} 
        //如果是文件就直接刪除 
        if(is_dir($pathdir.'/'.$a) && ($a!='.') && ($a!='..')) 
        {//如果是目錄 
            if(!is_empty_dir($pathdir.'/'.$a))//是否為空 
            {//如果不是,調用自身,不過是原來的路徑+他下級的目錄名 
            deltree($pathdir.'/'.$a); 
            } 
            if(is_empty_dir($pathdir.'/'.$a)) 
            {//如果是空就直接刪除 
            rmdir($pathdir.'/'.$a); 
            } 
        } 
        } 
        $d->close(); 

    echo "必須先刪除目錄下的所有文件";//我調試時用的 

    } 


function is_empty_dir($pathdir) 
{

//判斷目錄是否為空,我的方法不是很好吧?只是看除了.和..之外有其他東西不是為空
$d=opendir($pathdir); 
$i=0; 
    while($a=readdir($d)) 
    { 
    $i++; 
    } 
closedir($d); 
if($i>2){return false;} 
else return true; 

}  


呵呵,足夠給各種朋友用了吧,只是按照你需要和速度來論吧。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved