Systemvoraussetzung
Datei(en)
deleteShellFolder.php
Problem
Im vorangegangenen Beispiel haben Sie gesehen, wie ein komplettes Verzeichnis
inkl. Unterverzeichnissen kopiert wurde. Jetzt fehlt uns noch das
Gegenstück, also ein Verzeichnis inkl. aller Unterverzeichnisse zu löschen.
Lösung
Wir werden bei diesem Beispiel wieder direkt mit der Shell arbeiten, da auch
hier dieser Vorgang sehr schnell arbeiten wird und der Sourcecode wie im
vorangegangenen Beispiel kurz ist.
function deleteShellFolder($source)
@param string $source
@return mixed
Die Funktion deleteShellFolder() erwartet als einzigen Parameter das zu
löschende Verzeichnis ($source). Im ersten Schritt überprüfen wir (34), ob es
sich bei dem übergebenen und zu löschenden Verzeichnis um ein existentes
Verzeichnis handelt. Falls es das Verzeichnis nicht geben sollte, brechen wir
an dieser Stelle die Funktion ab und geben als Rückgabewert „FALSE“ zurück
(35).
Sollte das Verzeichnis existieren, bauen wir den String für unseren Löschvorgang
zusammen (37). Der String für unseren Kopiervorgang baut sich wie folgt
auf.
- rm Der Löschbefehl
- -R Rekursiv löschen, also auch Unterverzeichnisse
- -v Ausgabe erzeugen, zeigt den Löschvorgang in einem Array an
- $source Quellverzeichnis
Nachdem wir den String zusammengesetzt haben, können wir im nächsten
Schritt den Befehl ausführen (39) und erhalten, falls wir den Schalter „v“
angegeben haben, als Rückgabe (41) ein Array mit den gelöschten Dateien und
Verzeichnissen. 32:
33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43:
| function deleteShellFolder($source){
if (!is_dir($source)) return false; $shellBefehl = "rm -Rv $source";
exec($shellBefehl,$var); return $var; } |
Beispiel 11.3: deleteShellFolder.php
Sie müssen hier lediglich das zu löschende Verzeichnis angeben (45), um
dann im späteren Schritt die Funktion ausführen (47) zu können. Als Rückgabewert
erhalten Sie (Schalter „v“) ein Array mit den gelöschten Dateien und
Verzeichnissen. 45:
46: 47: 48: 49:
| $source = 'backup4/';
$var = deleteShellFolder($source);
print_r($var); |
Beispiel 11.4: deleteShellFolder.php
Ausgabe im Browser
Array
(
[0] => removing all entries of directory ’backup4’
[1] => removing ’backup4/9levuh_1137603141.jpg’
[2] => removing ’backup4/bs9tyo_1137603275.jpg’
[3] => removing ’backup4/fihedp_1137603349.jpg’
[4] => removing ’backup4/che.gif’
[5] => removing ’backup4/logo.gif’
[6] => removing ’backup4/u_blau.gif’
[7] => removing all entries of directory ’backup4/.jpg’
[8] => removing the directory itself: ’backup4/.jpg’
[9] => removing all entries of directory ’backup4/gif’
[10] => removing ’backup4/gif/Testdatei1.txt’
[11] => removing ’backup4/gif/Testdatei2.txt’
[12] => removing the directory itself: ’backup4/gif’
[13] => removing all entries of directory ’backup4/jpg’
[14] => removing ’backup4/jpg/Testdatei1.txt’
[15] => removing the directory itself: ’backup4/jpg’
[16] => removing all entries of directory ’backup4/pdf’
[17] => removing the directory itself: ’backup4/pdf’
[18] => removing ’backup4/glob1.php’
[19] => removing ’backup4/glob2.php’
[20] => removing the directory itself: ’backup4’
) |
Dieses Skript aus dem SELFPHP KOCHBUCH wurde von SELFPHP unter dem "Tarif Mc500" von McAc.net-Webhosting erfolgreich ausgeführt und getestet!
Auf der Übersichtseite unter "McAc.net – Webhosting zu diesem Buch" finden Sie weitere Informationen zu dem Webhostingpaket, dass durch SELFPHP getestet wurde.
|