Borrar un directorio de forma recursiva

En ocasiones quieres borrar desde PHP un directorio contenga lo que contenga… para esa tarea cree esta función:

<?php
  function rd ($path) {
    $exclude = array('', '.', '..');
    foreach (array_diff(scandir($path), $exclude) as $file) {
      if (is_file($path . DIRECTORY_SEPARATOR . $file)) {
        unlink($path . DIRECTORY_SEPARATOR . $file);
      } else {
        rd($path . DIRECTORY_SEPARATOR . $file);
      }
    }
    rmdir($path);
  }

Hace años que la cree y por tanto seguro que es mejorable, pero cumple su función a la perfección.

Actualización (2017-02-11): Utilizo la constante DIRECTORY_SEPARATOR para construir las rutas, lo que evidentemente es más versátil y nos evitará posibles errores.

Saludos

Compartelo

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *