2016-08-08 13 views
1

Ich habe eine Frage zu dem kleinen Codeausschnitt unten. Im Moment benutze ich das erste Code-Snippet und es läuft perfekt. Aber wäre der zweite Code nicht eine bessere Möglichkeit, den Ordner und die darin enthaltenen Dateien zu löschen? Meine Variable $target ist immer ein Pfad zu dem Ordner, den hwo löschen muss.Löschen Sie Ordner und Dateien in PHP

function deleteFilesAndDirectory($target) 
{ 
    if(is_dir($target)) 
    { 
     $files = glob($target . '*', GLOB_MARK); 
     foreach($files as $file) 
     { 
      deleteFilesAndDirectory($file);  
     } 
     rmdir($target); 
    } 
    elseif(is_file($target)) 
    { 
     unlink($target); 
    } 
} 

Warum sollte dieser Code nicht verwendet werden?

function deleteFilesAndDirectory($target) 
{ 
    $files = glob($target . '*', GLOB_MARK); 
    foreach($files as $file) 
    { 
     unlink($file);  
    } 
    rmdir($target); 
} 

Antwort

1

Die zweite wird gut funktionieren, solange das zu löschende Verzeichnis keine Unterverzeichnisse enthält. Um Unterverzeichnisse zu bereinigen, ist eine rekursive Funktion der beste Weg, weshalb sich im ersten Codebeispiel die Funktion deleteFilesAndDirectory() selbst aufruft.

+0

ha danke mein freund, das war eine kurze und klare antwort für mich :) so kann ich meine short code verwenden, weil eine nie irgendwelche unterverzeichnisse haben. –