Dateien automatisch löschen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Dateien automatisch löschen

    Hab mir grad ein Script in PHP programmiert. Dabei wird jeden Tag automatisch eine neue Datei angelegt in der Daten gespeichert werden und später wieder ausgelesen werden können. Der Dateiname orientiert sich immer am Datum in Forum von date("dmY"); -> also heute 08092005.

    Wie kann ich es nun anstellen das bei jeden Seitenaufruf automatisch die Dateien die älter als 1 Tag sind, sodass nur die heutige übrigbleibt, automatisch gelöscht werden. Hab da schon was mit der Funktion unlink probiert. Leider hat´s nicht hingehauen.

    Könnte mir jemand nen Tip oder einen codeschnipsel geben wie ich das anstellen kann?

    Gruß

  • #2
    Code:
    $arr = dateien_aus_dem_ordner;
    (schleife durch $arr)
    {
       $dat = name_zu_datum_umwandeln;
       wenn ( (heute - $dat) > 1 tag )
          unlink (dieses element des $arr);
    }
    ist doch ganz simpel.

    Comment


    • #3
      oder:

      PHP Code:
      unlink('pfad_zu_datei/'.(date('dmY')-1)); 

      Forumregeln!

      Gute PHP-(tutorial-)Seiten

      Comment


      • #4
        Original geschrieben von davidovich
        oder:

        PHP Code:
        unlink('pfad_zu_datei/'.(date('dmY')-1)); 
        Jepp, genauso hab ich schon mal davor gehabt. Das Prob ist das das (date('dmY')-1) vom Datum -1 abzieht. Dann kommt folgende Fehlernachricht:

        PHP Code:
        Warningunlink(.counts/9092004): No such file or directory in
         
        /var/www/web49/html/counter/counter.php on line 103 
        Da hat er jetzt eins abgezogen und deshalb ist das Datum jetzt 2004 statt 2005.

        Comment


        • #5
          PHP Code:
          unlink('pfad_zu_datei/'date("d")-date("mY")); 
          gruss Chris

          [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

          Comment


          • #6
            date('...', strtotime("-1 days"));
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Comment


            • #7
              Vielen Dank für eure Tips. Hab aber irgendwie keinen Tip von euch hinbekommen. Hab deshalb mal den Nachmittag getüftelt und es ist das dabei herausgekommen:

              PHP Code:
              <?php 

              $dir 
              'counts/';
                         if (
              $d opendir($dir)) {
                           while ((
              $file readdir($d)) !== false) {
                             if (
              substr($file,0,4)=="c_"){
                              
                               
              $ftime filemtime($dir.'/'.$file);
                               if (
              time()-$ftime 3600*120){
                                 
              unlink($dir.'/'.$file);
                               }
                             }
                           }
                           
              closedir($d);
                          } 

              ?>
              Jetzt hab ich aber ein weiteres Problem. Ist der Code soweit richtig? Weil beim ausführen in einer PHP-Datei löscht der die Dateien nicht. Die liegen in dem Ordner "Counts". Die selbst erstellen Dateien sehen nun so aus. c_$date -> also heute c_10092005
              Fällt euch vielleicht irgendeinen Fehler auf?

              Comment


              • #8
                Ist der Code soweit richtig?
                keine ahnung, mal testausgaben gemacht?

                ein paar evtl. verbesserungsvorschläge:

                1. glob() zum einlesen nutzen
                2. vorm unlink() immer ein file_exists() machen. E_ALL nicht vergessen.
                3. einen absoluten pfad mit realpath() ermitteln und an file_exists() und unlink() übergeben.

                Comment

                Working...
                X