Avatar billede anton73 Nybegynder
21. oktober 2009 - 09:47 Der er 2 kommentarer

Slet fil ældre end x antal dage fra folder på server

Jeg har et lille system hvor der uploades nogle nogle filer til en folder. Er det muligt at lave et script der automatisk sletter filer i den folder der er ældre end fx 14 dage? Så jeg ikke skal sidde og slette dem manuelt. Dvs at jeg gerne vil have scriptet til at arbejde i baggrunden en gang i døgnet eller lignende uden at jeg skal foretage mig noget.

Jeg har websitet/folderen liggende på server hos fx one.com
Avatar billede showsource Seniormester
21. oktober 2009 - 10:18 #1
dir(), unlink() og filemtime()
http://dk.php.net/manual/en/class.dir.php
http://dk.php.net/manual/en/function.unlink.php
http://dk.php.net/manual/en/function.filemtime.php

For at det skal afvikles automatisk, skal der sættes et cronjob op, eller evt. bruge http://www.cronjob.de/
Avatar billede acore Ekspert
21. oktober 2009 - 10:30 #2
Noget i stil med:

$dir = ".";
$maxage = 14*24*3600;    // 14 days (in seconds)

delfiles($dir, $maxage);

function delfiles($dir, $maxage)
{
  if (is_dir($dir) && ($dh = opendir($dir)))
  {
    while (($file = readdir($dh)) !== FALSE)
    {
      if ($file != "." && $file != "..")
      {
        $filename = $dir."/".$file;
        if (is_dir($filename))
        {
          delfiles($filename, $maxage);
        }
        else if (filemtime($filename) + $maxage < time())
        {
          unlink($filename);
        }
      }
    }
  }
  @closedir($dh);
}

køres en gang i dognet via cronjob - gratis hos cronjob.de - skulle kunne gøre det.

NB. Ikke testet - VÆR FORSIGTIG - den sletter jo filer. Lav unlink om til echo indtil du er 110 på at det virker.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester