Ejemplos php – Eliminar ficheros de un directorio

Veamos un ejemplo en forma de código PHP que deberíamos utilizar si queremos eliminar ficheros de un directorio concreto de nuestro servidor.

Tutoriales PHP

Hace poco necesité esta función para el tema del tratamiento de la caché. Puede que os sea de utilidad. Creé una función que eliminaba los ficheros de un directorio ( en mi caso el directorio donde estaban los ficheros de la cache ).

Fijaos los pasos que realiza el código:

$dir = "../catxe/";
$ficheroseliminados= 0;
$handle = opendir($dir);
while ($file = readdir($handle)) {
 if (is_file($dir.$file)) {
  if ( unlink($dir.$file) ){
   $ficheroseliminados++;
  }
 }
}
echo "Fitxers eliminats : <strong>". $ficheroseliminados ."</strong>";

1 Abrir la carpeta

Es lo más complicado. Dependiendo de la estructura de carpetas de nuestro servidor, la variable $dir, que es la que tiene el directorio, deberá tener un valor u otro.

Id con cuidado !!! según lo que pongáis, podéis eliminar el contenido de carpetas equivocadas !!!

Con el opendir($dir), le decimos en que carpeta vamos a trabajar.

$handle = opendir($dir);

2 Ir leyendo los ficheros

Una vez hemos indicado en qué carpeta trabajamos, vamos leyendo lo que hay dentro:

while ($file = readdir($handle)) {

Y claro, debéis tener en cuenta que dentro de nuestra carpeta, pueden haber más carpetas… y sólo queremos eliminar los ficheros de esa carpeta. Con lo que deberemos confirmar que lo que tratamos es un fichero:

if (is_file($dir.$file)) {

Si no es un fichero (es una carpeta), no hará nada.

3 Eliminarlo

Y finalmente, cuando ya tenemos el elemento y confirmamos que es un fichero, lo eliminamos:

if ( unlink($dir.$file) ){

Y cuando decimos que se eliminar, es que se elimina. Luego no se puede recuperar. Haced copias de seguridad antes de hacer nada…

Si lo habéis encontrado interesante el cómo eliminar ficheros de un directorio con PHP, quizás os guste descubrir más tutoriales de programación php.


Más información

3 comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

*