1. 程式人生 > php教程 > 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 webjx.com

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;
}