Dateien automatisch löschen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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.

    Kommentar


    • #3
      oder:

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

      Forumregeln!

      Gute PHP-(tutorial-)Seiten

      Kommentar


      • #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.

        Kommentar


        • #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]

          Kommentar


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

            Kommentar


            • #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?

              Kommentar


              • #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.

                Kommentar

                Lädt...
                X