Flat-Blue-Folder-Icon-1024Tutoriales PHP

Eliminar todo el contenido de un directorio incluyendo subdirectorios con PHP

Trabajar con páginas web a veces puede ser un dolor de cabeza, sobre todo al momento de crear un script para que haga determinada función, un punto y coma puede hacerte el día.

En PHP tenemos la función unlink() para eliminar un fichero, sin embargo, no puede eliminar directorios, para ello tenemos la función rmdir()..ahora ¿qué pasa si queremos eliminar un directorio (o carpeta) que contiene archivos dentro y además subdirectorios? lamentablemente la función rmdir() queda descalificada.

Por ello, les comparto un pequeño y simple script para eliminar un directorio entero, contenga lo que contenga.
//============= ELIMINAR UN DIRECTORIO ==========
function eliminar_directorio($dir){
$result = false;
if ($handle = opendir("$dir")){
$result = true;
while ((($file=readdir($handle))!==false) && ($result)){
if ($file!='.' && $file!='..'){
if (is_dir("$dir/$file")){
$result = eliminar_directorio("$dir/$file");
} else {
$result = unlink("$dir/$file");}}}
closedir($handle);
if ($result){
$result = rmdir($dir);
}}
return $result;
}

Su uso es bastante simple, basta con llamar a la función y colocar la localización del directorio dentro.
eliminar_directorio('directorio');
//si se encuentra, por ejemplo, en archivos
eliminar_directorio('archivos/musica'); //elimina el directorio musica