Cómo eliminar todos los ficheros de un directorio utilizando PHP

Hay veces que debes liberar espacio en tu servidor web, y qué mejor manera que eliminando esos archivos que ya no se utilizan o aquellos que son tan antiguos. Imagina que dichos archivos están dentro de un directorio concreto y, logicamente, quieres eliminar todos los archivos de su interior. En este artículo veremos cómo abordar las siguientes situaciones:

  • Eliminar todos los ficheros de un directorio concreto para eliminar espacio del servidor web
  • Eliminar ficheros antiguos de un directorio que se ha utilizado antes de una fecha específica
  • Eliminar archivos de un directorio con una extensión concreta
  • Y muchas más...

En este artículo veremos cómo implementar un script de PHP muy simple para eliminar todos los ficheros de un directorio o carpeta, sin necesidad de saber los nombres de los ficheros que la integran. Para eliminar dichos ficheros del directorio utilizaremos las funciones de PHP glob() y unlink().

A continuación, puedes ver el código para tres situaciones distintas. En estas situaciones, implementaremos la función de eliminar ficheros de un directorio.

Eliminar todos los ficheros de un directorio

El siguiente script elimina todos los ficheros de un directorio.

$files = glob('my_folder/*'); //obtenemos todos los nombres de los ficheros
foreach($files as $file){
    if(is_file($file))
    unlink($file); //elimino el fichero
}

Eliminar todos los ficheros de un tipo específico de manera recursiva

El siguiente script elimina solo aquellos ficheros que cuentan con un extensión concreta.

$files = glob('my_folder/*.jpg'); //obtenemos todos los nombres de los ficheros
foreach($files as $file){
    if(is_file($file))
    unlink($file); //elimino el fichero
}

Eliminar ficheros antiguos del servidor

El siguiente script elimina los ficheros que se han modificado antes de una fecha específica.

$files = glob('my_folder/*'); //obtenemos el nombre de todos los ficheros
foreach($files as $file){
    $lastModifiedTime = filemtime($file);
    $currentTime = time();
    $timeDiff = abs($currentTime - $lastModifiedTime)/(60*60); //en horas
    if(is_file($file) && $timeDiff > 10)
    unlink($file); //elimino el fichero
}

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP