RMDIR recursivo en PHP

Para eliminar directorios con php se utiliza la función rmdir(), el problema es que esa función no permite borrar carpetas que contengan algo, ya sea otras carpetas vacías o archivos.

Se pueden hacer funciones para eliminar carpetas y su contenido utilizando sólo php, de hecho en el manual de rmdir en php.net se pueden ver algunas en los comentarios, pero no es eso lo que me interesa. Lo que voy a explicar es cómo hacerlo utilizando comandos del sistema (en unix, los de windows no tengo ni idea).

La cosa es sencilla, para ejecutar comandos del sistema se utiliza la función exec() de PHP.

Por ejemplo:

echo '<ol>';
if(exec('rm -frv /el/directorio/a/borrar/',$salida)){
   foreach($salida as $line){
      echo '<li>'.$line.'</li>';
   }
}else{
   echo '<li>Error al eliminar archivos</li>';
}
echo '</ol>';

Como se ve, he utilizado el comando rm con las opciones -frv, la f es para forzar (ignora archivos inexistentes), la r para que sea recursivo y la v (de verbose) para que explique lo que esta haciendo. Si queréis, en la wikipedia hay mas información sobre el comando rm.




Josep Viciana

Programador de 27 años con una década de experiencia como programador. interesado en el diseño, ilustración y nuevas tecnologías. Dedicado desde siempre a la programación Web y desde hace algunos años también a la móvil.

No hay comentarios


Puedes dejar el primero : )



Deja un comentario

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