Borrando directorios (subdirectorios y su contenido) con PHP y Recursividad

Este código borra los directorios: subdirectorios y todo su contenido, haciendo uso de una sola función en PHP, esto con recursividad.

<?php
 
 set_time_limit(900);
 
 $folder = trim("\windows\ ");
 
 delete_folder(dirname(__FILE__) .$folder);
 
 function delete_folder($folder) {
 $folder_contents = get_folder_contents($folder);
 if ($folder_contents) {
 foreach ($folder_contents as $__content) {
 echo $__content['item'] .'<br />';
 if (is_dir($__content['item']))
 delete_folder($__content['item']);
 else
 unlink($__content['item']);
 }
 }
 rmdir($folder);
 }
 
 function get_folder_contents($folder) {
 if( !is_dir($folder) ) { 
 return false;
 }
 $return_array = array();
 $count = 0;
 if( $dh = opendir($folder) ) {
 while( ($file = readdir($dh)) !== false ) {
 if( $file == '.' || $file == '..' ) continue; 
 $return_array[$count]['item'] = $folder .$file .(is_dir($folder .$file) ? DIRECTORY_SEPARATOR : '');
 $count++; 
}
 closedir($dh);
 }
 return $return_array;
 }
 
?>

Advertencia: asegurate especificar un directorio solo para probar, sin datos importantes pues al ejecutar el script borra todo el contenido sin contemplaciones.

Vía Web Development

Leave a Reply

Your email address will not be published. Required fields are marked *

Proudly powered by WordPress | Theme: Wanderz Blog by Crimson Themes.