Borrar Archivos PHP

Rodrigo Fuentealba darkprox en gmail.com
Mar Oct 3 12:06:56 CLT 2006


Estimado:

El 3/10/06, Cristian Perez<cperez en asoex.cl> escribió:
> Estimados, ¿Cómo puedo hacer un procedimiento en el cual cada cierto tiempo
> elimine archivos antiguos de una carpeta que se generan a través de un php?,

Puedes hacerlo de dos formas:

Una, es utilizando cron en Linux o cualquier UNIX para hacer correr tu
script como un ejecutable más. Para eso tu script debería contener al
principio un:

#!/usr/bin/php
<?php
     // codigo fuente de tu aplicacion de borrado
?>

Luego puedes correrlo de dos formas: una es usando "php archivo.php"
en la línea de comandos, si es que existe el cli, y la otra es dándole
permisos al archivo como ejecutable, vía chmod 700 archivo.php,
pudiendo ejecutarlo con ./archivo.php ;) Para esto, por favorcito por
favorcito, deja tu archivo "afuera" del servidor web, mira que podría
pasar quizá qué cosa.

Otra es utilizando el mismo archivo con que las generas, para
borrarlas. Esto, claro, puede ser antes o después de generar archivos.

En caso de que sea antes, tienes que usar las funciones de fecha y
hora en archivos (por ejemplo, filectime[1]: este código sirve para el
ejemplo anterior también

<?php
   $path="mi/directorio/";

   $directorio=dir($path);

   while ($archivo = $directorio->read())
   {
      if((filectime($archivo) < $algunafecha) and (is_file($archivo))
      {
         unlink($archivo);
      }
   }
   $directorio->close();
?>

En el caso que sea después de creado y una vez que se ha dejado de
usar, debes mantener tu variable de archivo guardada por ahí, y llamar
a unlink(); [2] antes de finalizar el script, con eso tu archivo se
elimina. (que es lo que creo, por ejemplo, si usas un directorio o un
archivo temporal para generar alguna clase de informe, el cual lo
envías por la red una sola vez).

> esto es para que no vayan ocupando espacio.-
>
> De ante mano, muchas gracias.-
>
> Atte.
> CPC

[1] http://cl.php.net/manual/es/function.filectime.php
[2] http://cl.php.net/manual/es/function.unlink.php

Ojalá te sirva.

-- 
Rodrigo Fuentealba Cartes
Desarrollador de Sistemas Web
Registered User 387639 - http://counter.li.org



Más información sobre la lista de distribución PHP