Maison > développement back-end > tutoriel php > Fonction d'opération de suppression de dossier PHP et résumé de plusieurs exemples de codes de méthodes

Fonction d'opération de suppression de dossier PHP et résumé de plusieurs exemples de codes de méthodes

伊谢尔伦
Libérer: 2023-03-14 09:14:02
original
2213 Les gens l'ont consulté

La fonction unlink() est utilisée pour supprimer des fichiers. Renvoie vrai en cas de succès, faux en cas d'échec. La fonction rmdir() est utilisée pour supprimer les répertoires vides. Il tente de supprimer le répertoire spécifié par dir. Le répertoire doit être vide et doit disposer des autorisations appropriées.
Un exemple : supprimez tous les dossiers ".svn" d'un certain dossier (y compris leur contenu doit également être supprimé).

<?php 
function delsvn($dir) { 
$dh=opendir($dir); 
//找出所有".svn" 的文件夹: 
while ($file=readdir($dh)) { 
if($file!="." && $file!="..") { 
$fullpath=$dir."/".$file; 
if(is_dir($fullpath)) { 
if($file==".svn"){ 
delsvndir($fullpath); 
}else{ 
delsvn($fullpath); 
} 
} 
} 
} 
closedir($dh); 
} 
function delsvndir($svndir){ 
//先删除目录下的文件: 
$dh=opendir($svndir); 
while($file=readdir($dh)){ 
if($file!="."&&$file!=".."){ 
$fullpath=$svndir."/".$file; 
if(is_dir($fullpath)){ 
delsvndir($fullpath); 
}else{ 
unlink($fullpath); 
} 
} 
} 
closedir($dh); 
//删除目录文件夹 
if(rmdir($svndir)){ 
return true; 
}else{ 
return false; 
} 
} 
$dir=dirname(FILE); 
//echo $dir; 
delsvn($dir); 
?>
Copier après la connexion

Exemple de code de méthode PHP pour supprimer un dossier :

Méthode récursive :

deleteDir($dir)
{
if (rmdir($dir)==false && is_dir($dir)) {
    if ($dp = opendir($dir)) {
     while (($file=readdir($dp)) != false) {
      if (is_dir($file) && $file!=&#39;.&#39; && $file!=&#39;..&#39;) {
       deleteDir($file);
      } else {
       unlink($file);
      }
     }
     closedir($dp);
    } else {
     exit(&#39;Not permission&#39;);
    }
}
}
Copier après la connexion

Méthode d'appel système

function del_dir($dir)
{
if(strtoupper(substr(PHP_OS, 0, 3)) == &#39;WIN&#39;) {
       $str = "rmdir /s/q " . $dir;
} else {
       $str = "rm -Rf " . $dir;
}
}
Copier après la connexion

Méthode de circuit

function deltree($pathdir)
{
echo $pathdir;//我调试时用的
if(is_empty_dir($pathdir))//如果是空的
      {
      rmdir($pathdir);//直接删除
      }
      else
      {//否则读这个目录,除了.和..外
          $d=dir($pathdir);
          while($a=$d->read())
          {
          if(is_file($pathdir.&#39;/&#39;.$a) && ($a!=&#39;.&#39;) && ($a!=&#39;..&#39;)){unlink($pathdir.&#39;/&#39;.$a);}
          //如果是文件就直接删除
          if(is_dir($pathdir.&#39;/&#39;.$a) && ($a!=&#39;.&#39;) && ($a!=&#39;..&#39;))
          {//如果是目录
              if(!is_empty_dir($pathdir.&#39;/&#39;.$a))//是否为空
              {//如果不是,调用自身,不过是原来的路径+他下级的目录名
              deltree($pathdir.&#39;/&#39;.$a);
              }
              if(is_empty_dir($pathdir.&#39;/&#39;.$a))
              {//如果是空就直接删除
              rmdir($pathdir.&#39;/&#39;.$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;
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal