Salve a tutti, vorrei cancellare in un solo passaggio delle cartelle che contengono altre cartelle all'interno e files. Finora sono riuscito ad ottenere la eliminazione di cartelle che contengono solo files con il seguente script.
Vorrei un aiuto, grazie.
Codice PHP:
$scelto = $_SESSION['scelto'];
$elimina_pratica = "uploads/".$scelto.-$rep."/";
$folderName = $elimina_pratica;
//crea un array che conterrà l’elenco di tutti i file che sono stati eliminati
$elenco=array();
//apre la cartella specificata come parametro
$cartella = opendir($folderName);
//ciclo che legge tutti i file della cartella
while ($file = readdir($cartella)) {
//se il file ha un nome diverso da "." o ".."
if($file !='.'&& $file !='..'){
//Verifica che si tratta di un file e non di una cartella
if(is_file($folderName.'/'.$file)){
//aggiunge il file all’array
array_push($elenco,$folderName.'/'.$file);
//elimina il file
unlink($folderName.'/'.$file);
}
//se si tratta di una cartella
if(is_dir($folderName.'/'.$file)){
//richiama ricorsivamente la stessa funzione aggiungendo i file
//della nuova funzione all’elenco creato inizialmente
$elenco = myMerge($elenco,deleteFilesAndFolder($folderName.'/'.$file));
}
}
}
//Chiude la cartella
closedir($cartella);
//elimina la cartella
rmdir($folderName);
//aggiunge la cartella stessa all’elenco
array_push($elenco,$folderName);
//restituisce l’elenco di tutti i file eliminati
return $elenco;
?>