2016-05-19 7 views
1

Ich möchte einige Verzeichnisse löschen und ich habe ihre Namen in einem Array namens Ordner gespeichert.PHP, Verzeichnisse entfernen

foreach ($folders as $f){ 
    rmdir($dir); 
    $dir=rtrim($dir,"/"); 
    $dir=rtrim($dir,$f); 
} 

Zum Beispiel:

dir: /cdf5/gfft/ 
and folders: gftt,cdf5 

sah ich, dass manchmal die rtrim Funktion mehr als 4 Zeichen abgeschnitten und der verbleibende Weg in dir ist: /cdf.

Was ist das Problem?

+0

Teilen Sie Ihre 'folders' $ array uns. –

+0

Wo ist $ dir definiert? – bg17aw

+0

Wenn Sie nur einen nachgestellten Schrägstrich entfernen möchten, verwenden Sie substr es ist eine billigere Aktion für den Server –

Antwort

2

Diese Funktion löscht Verzeichnis mit Dateien innerhalb

function deldirectory($dir){ 

$tfile = new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS); 
$files = new RecursiveIteratorIterator($tfile, 
      RecursiveIteratorIterator::CHILD_FIRST); 
foreach($files as $file) { 
    if ($file->isDir()){ 
     rmdir($file->getRealPath()); 
    } else { 
     unlink($file->getRealPath()); 
    } 
} 
return rmdir($dir); 
} 

Dann können Sie diese Funktion aufrufen

foreach ($folders as $f){ 
    deldirectory($f); 
} 
+0

Vielen Dank! Können Sie mir sagen, warum meine Lösung nicht funktioniert? – CCT

+0

Es kann Dateien oder Unterverzeichnis innerhalb haben, so dass es nicht funktioniert. rmdir entfernt nur ein leeres Verzeichnis. Sie müssen zuerst die Dateien und Unterverzeichnisse löschen, bevor Sie das Verzeichnis löschen. –

Verwandte Themen