Eliminar un directorio con PHP

Muchas veces necesitamos eliminar un directorio, y PHP nos permite utilizar la función rmdir() el único problema es que pone como condición que el directorio esté vacio.

Si no es nuestro caso y queremos borrar todo un directorio independientemente de lo que contenga, podremos hacer uso de esta función recursiva que he creado.

function eliminarDir($carpeta){
  foreach(glob($carpeta."/*") as $archivos_carpeta)
  {
    echo $archivos_carpeta;
    if(is_dir($archivos_carpeta)) eliminarDir($archivos_carpeta);
    else unlink($archivos_carpeta);
  }
  rmdir($carpeta);
}

Como se puede observar, después de obtener todos lo elementos del directorio raíz, elimino los archivos y voy pasando de manera recursiva a todos los subdirectorios.

Es posible que algún hosting no permita la ejecución de este comando.

Artículos relacionados

Aleatorio



Comentarios en Eliminar un directorio con PHP

Hay 7 Comentarios en el artículo Eliminar un directorio con PHP, ¿a qué esperas para dar tu opinión?


  1. Excelente articulo, estoy en la madrugada componiendo un çscript que me sirva de galeria y necesitaba eliminar automaticamente dsde el panel de usuarios… Me han salvado.

    Saludos

  2. Emirodgar dice:

    Me alegro de que te sirviera :)

  3. Eldita dice:

    holaa muchisismas gracias , era justo lo que andaba buscando, sencillo y eficientee.. felicidades..

  4. tipacoque dice:

    y como se hace si no tan vacios?

  5. Agustin dice:

    estoy usando esta funcion para borrar unos ficheros, funciona perfecto, pero cuando le agrego la funcion header, esta deja de funcionar. aca dejo el codigo:

    function eliminarDir($carpeta){
    foreach(glob($carpeta.”/*”) as $archivos_carpeta)
    {
    echo $archivos_carpeta;
    if(is_dir($archivos_carpeta)) eliminarDir($archivos_carpeta);
    else unlink($archivos_carpeta);
    }
    rmdir($carpeta);
    }

    eliminarDir (”../fotos/albumes/”.$album_nombre);

    $baja = “Delete from album where album_nombre=’$album_nombre’”;
    mysql_query($baja);
    mysql_close();

    header(”Refresh:1 url=panel.php”);

Deja un comentario