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.

Comentarios (0)

No hay comentarios. Sé el primero en comentar.

Deja un comentario

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.