程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
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。循環法

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