Ver Mensaje Individual
  #5 (permalink)  
Antiguo 16/11/2010, 07:13
android
 
Fecha de Ingreso: enero-2009
Mensajes: 45
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Borrar carpetas que no se hayan sido creadas anteriormente a un cierto tie

Cita:
Iniciado por abimaelrc Ver Mensaje
Eso lo logras más bien con un cron job.
Si, ya se que se puede metiendo una tarea en el servidor pero no me interesa hacerlo de forma periódica. Gracias de todas maneras por tu sugerencia!

Cita:
Iniciado por gandres Ver Mensaje
Ufa... hoy estoy para errar las teclas:

Corrección:

donde dice
$modificado=filemtime('nombredeldirectorio);
debe decir:
$modificado=filemtime('nombredeldirectorio');

donde dice
$ahora=mjtime();
debe decir:
$ahora=mktime();

Para eliminar los archivos del directorio puedes hacerte un loop que lea que archivos hay en el directorio y borrarlos:

if ($handle = opendir('nombredeldirectorio')) {
while ($file = readdir($handle)) {
unlik $file;
}
}
else
echo 'No pude abrir el directorio';

Otra cosa, ten en cuenta los permisos que tienes sobre directorio y archivos.

Espero que te sirva
Lo he probado y no me funciona....


Al final lo que he hecho es esto:

Código PHP:
<?php
function vartime($filepath){
$filet=filemtime($filepath);
$actualt=time();

// define filetime
$yearf=date('Y',$filet);
$monthf=date('n',$filet);
$dayf=date('j',$filet);


// define actualtime
$yeara=date('Y',$actualt);
$montha=date('n',$actualt);
$daya=date('j',$actualt);

$t=(strtotime("$montha/$daya/$yeara")-strtotime("$monthf/$dayf/$yearf"))/60/60/24;
$final=floor($t);

return 
$final;
}


function 
delete_old_folders($dir){
    if (
is_dir($dir)){
        
$objects=scandir($dir);
            foreach (
$objects as $object){
                if(
$object !="." && $object !=".." && (filetype($dir."/".$object)=="dir") && (vartime("$dir."/".$object")>1)){
                    
rrmdir($dir."/".$object);
                }
            }
    }
}
 function 
rrmdir($dir) {
   if (
is_dir($dir)) {
     
$objects scandir($dir);
     foreach (
$objects as $object) {
       if (
$object != "." && $object != ".." && (vartime("$dir/$object")>1)) {
                if (
filetype($dir."/".$object) == "dir"rrmdir($dir."/".$object); else unlink($dir."/".$object);
        }
     }
     
reset($objects);
     
rmdir($dir);
   }
 }

?>

Y llamarlo con:

Código PHP:
delete_old_folders('uploads'

Pero me sigue sin funcionar.


Es posibe que el comando filemtime no funcione para sacar los datos del tiempo de carpetas? Quizas solo pueda con archivos...

Me da este error:
Código:
Warning: filemtime() [function.filemtime]: stat failed for 0