Heim >Backend-Entwicklung >PHP-Tutorial >So löschen Sie mehrstufige Verzeichnisse mit PHP

So löschen Sie mehrstufige Verzeichnisse mit PHP

WBOY
WBOYOriginal
2016-08-08 09:33:50941Durchsuche

Gestern habe ich einen Beitrag (chinaasp) gesehen, in dem gefragt wurde, wie man ein Verzeichnis löscht. Das war vorher immer möglich, aber gestern ist etwas schiefgegangen. Es stellte sich heraus, dass er nur seine untergeordneten Dateien gelöscht und sie dann gelöscht hat
Verzeichnis, also wenn es noch ein paar Ebenen mehr gibt, wird es Probleme geben.

Meins kann nur vorübergehend verwendet werden, wenn Ihr Verzeichnis nicht mehr als zehn Ebenen hat, sollte es in Ordnung sein ~, aber ich bin nicht mit Rekursion vertraut und kann es nur tun

Deltree($path);rmdir($path) kann dieses Verzeichnis löschen. Kann ich dieses Verzeichnis direkt mit deltree($path); löschen? ?

Funktion deltree($pathdir)
{
echo $pathdir;//Ich verwende es beim Debuggen

if(is_empty_dir($pathdir))//Wenn es leer ist
{
​ rmdir($pathdir);//Direkt löschen
}  
sonst
{//Andernfalls lesen Sie dieses Verzeichnis, außer und ..
          $d=dir($pathdir);
​​​​while($a=$d->read())
                                      {
if(is_file($pathdir.'/'.$a) && ($a!='.') && ($a!='..')){unlink($pathdir.'/'.$a); }
​​​​//Wenn es sich um eine Datei handelt, löschen Sie sie direkt
If(is_dir($pathdir.'/'.$a) && ($a!='.') && ($a!='..'))
​​​​{//Wenn es sich um ein Verzeichnis handelt
If(!is_empty_dir($pathdir.'/'.$a))//Ist es leer
                                                                                                                      { deltree($pathdir.'/'.$a);
                                                                                                               If(is_empty_dir($pathdir.'/'.$a))
                     {//Wenn es leer ist, löschen Sie es direkt
                rmdir($pathdir.'/'.$a);
                                                                                                                         }
          }
           $d->close();
                                                      echo „Alle Dateien im Verzeichnis müssen zuerst gelöscht werden“;//Ich verwende es beim Debuggen
       
}  

}

Funktion is_empty_dir($pathdir)
{//Meine Methode zur Beurteilung, ob das Verzeichnis leer ist, ist nicht sehr gut, oder? Nur um zu sehen, ob es außer .. noch andere Dinge gibt, die nicht leer sind, gibt PHP etwas

Funktion?
$d=opendir($pathdir);
$i=0;
While($a=readdir($d))
{
$i ;
}  
geschlossenir($d);
if($i>2){return false;}
sonst gibt true zurück;
}


Das Obige stellt vor, wie man PHP zum Löschen von mehrstufigen Verzeichnissen verwendet, einschließlich des relevanten Inhalts. Ich hoffe, es wird für Freunde hilfreich sein, die sich für PHP-Tutorials interessieren.


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn