Andreas: Datei zu bestimmten Datum unter anderem Namen Speichern

Hallo,
ich hab ein PHP-Script für die Aufzeichnung der Klicks in einer Log-Datei. Zum Monatsende/-anfang möchte ich die vorhandene stat.log unter dem Namen MonatJahr.log speichern, die vorhandene stat.log soll als leere Datei bestehen bleiben.
Ich hoffe ich habe mich verständlich ausgedrückt.

Die Sache Zeitgemäß anzustoßen ist imo kein Problem, auch ohne cron-jobs, aber wie kopiere ich die Datei und wie bekomme ich eine leere stat.log?

Gruß Andreas

  1. Hallo,
    ich hab ein PHP-Script für die Aufzeichnung der Klicks in einer Log-Datei. Zum Monatsende/-anfang möchte ich die vorhandene stat.log unter dem Namen MonatJahr.log speichern, die vorhandene stat.log soll als leere Datei bestehen bleiben.
    Ich hoffe ich habe mich verständlich ausgedrückt.

    Die Sache Zeitgemäß anzustoßen ist imo kein Problem, auch ohne cron-jobs, aber wie kopiere ich die Datei und wie bekomme ich eine leere stat.log?

    Gruß Andreas

    Hoi!

    Wenn ich das richtig verstanden habe, möchtest du, dass eine Datei zu einem bestimmten Zeitpunkt automatisch umbenannt wird, und eine neue, leere Datei unter dem ehemaligen Namen angelegt wird?

    Wie ist das ohne Cronjob möglich?

    Dann müsstest du die entsprechende PHP Seite ständig im Browser laufen lassen?

    Ich bin gespannt, man lernt nie aus :)

    Grüße,

    SF

    1. Hallo

      Wie ist das ohne Cronjob möglich?

      ganz einfach, indem ich das Ereignis abwarten wenn in die stat.log geschrieben wird.
      Vor dem Schreiben der Daten prüfe ich einfach ob jetzt der 1. des Monats ist. Wenn ja Datei umbenennen, neue Datei aus dem Ärmel schütteln und dahinein die Daten schreiben.
      Das funktioniert ja nicht wegen dem Checkmod, der das Schreiben nicht erlaubt, daher muss die bestehende stat.log irgendwie wie mit Copy&Paste kopiert werden und danach geleert werden.

      Und genau da brauche ich eure Hilfe.

      Gruß Andreas

      1. Hallo

        Wie ist das ohne Cronjob möglich?
        ganz einfach, indem ich das Ereignis abwarten wenn in die stat.log geschrieben wird.
        Vor dem Schreiben der Daten prüfe ich einfach ob jetzt der 1. des Monats ist. Wenn ja Datei umbenennen, neue Datei aus dem Ärmel schütteln und dahinein die Daten schreiben.
        Das funktioniert ja nicht wegen dem Checkmod, der das Schreiben nicht erlaubt, daher muss die bestehende stat.log irgendwie wie mit Copy&Paste kopiert werden und danach geleert werden.

        Und genau da brauche ich eure Hilfe.

        Gruß Andreas

        Hoi!

        Also passiert das jedes mal wenn das Script aufgerufen wird?

        Ist das ja schon ein bisschen unperfomant...

        Ok, aber jetzt ist mir das Problem zumindest klar :)

        Ich kuck mal ob ich da was passendes finde, jetz etwas basteln klappt leider zeitlich grad nicht...

        1. Hallo,

          Ist das ja schon ein bisschen unperfomant...

          Nein denke ich nicht. Die ganze Sache hat sich als viel einfacher herausgestellt als ich mir gedacht habe.
          Ich habe vor dem Speichern lediglich folgenden Code eingefügt:
          $aktdatum = strftime("%B-%Y",time());
          $filename = $aktdatum.".dta";

          Das ist alles. Die Variable $filename wird vom Script bereits verwendet, ich hab sie nur ein bisschen "manipuliert".

          Gruß Andreas

      2. Hi Andreas,

        Vor dem Schreiben der Daten prüfe ich einfach ob jetzt der 1. des Monats ist.

        Was, wenn dein Script jetzt am 1. des Monats gar nicht aufgerufen wurde? Bspw. weil der Server mal ausgefallen ist oder so etwas?

        Ganz so einfach ist der Algorithmus, der dahinter steckt dann doch nicht ;-)

        MfG, Dennis.

        --
        Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
        That's life - Es gibt im Leben[tm] keine Zurück-Taste. (Fabian Transchel)
  2. Hi,

    ich hab ein PHP-Script für die Aufzeichnung der Klicks in einer Log-Datei. Zum Monatsende/-anfang möchte ich die vorhandene stat.log unter dem Namen MonatJahr.log speichern

    warum machst du das nicht gleich als MonatJahr.log? ansonsten würd ich
    vor dem eintrag in die stat.log am anfang immer prüfen ob es für den
    vorherigen monat in diesem jahr schon ein MonatJahr.log gibt, wenn nicht
    die stat.log kopieren und neuerstellen.

    alles klar?

    MfG

    1. Hi,
      du meinst ich erstelle mal im Vorraus für z.B. 1 Jahr die leeren Log-Dateien und kopiere dann einfach jeden Monat die Daten in eine Andere Datei? Wäre eine Möglichkeit.

      warum machst du das nicht gleich als MonatJahr.log? ansonsten würd ich

      Andreas

      1. Hi,

        du meinst ich erstelle mal im Vorraus für z.B. 1 Jahr die leeren Log-Dateien und kopiere dann einfach jeden Monat die Daten in eine Andere Datei? Wäre eine Möglichkeit.

        nein.
        wenn der klickt rufst du ja ein funktion oder sonst irgendwas auf was
        dir die klicks etc. dann in die stat.log speichert, oder hab ich da was
        falsch verstanden?

        anstat das das in die stat.log gespeichert wird schaust du ob für den
        aktuellen monat und dieses Jahr schon ein .log besteht. wenn nicht
        erstellst du ein Monat.Jahr.log und schreibst da rein. ganz einfach.

        sprich:
        $akt_datum = ("%m-%j")
        if(file_exists($aktdatum.log))
        //reinschreiben, aktuallisieren
        else
        //dateierstellen

        1. Hallo,

          sprich:
          $akt_datum = ("%m-%j")
          if(file_exists($aktdatum.log))
          //reinschreiben, aktuallisieren
          else
          //dateierstellen

          das sieht ja ganz einfach aus.
          Die Datei kann ich ja mit copy von einem Orginal erstellen und entsprechend umbenennen.

          Gruß Andreas

          1. Hi,

            das sieht ja ganz einfach aus.

            $akt_date = strftime("%m-%Y",time());

            versteht sich.

            Die Datei kann ich ja mit copy von einem Orginal erstellen und entsprechend umbenennen.

            ich sag jetzt einfach mal, ja.

            MfG

            1. Hi Daniel,

              Die Datei kann ich ja mit copy von einem Orginal erstellen und entsprechend umbenennen.

              ich sag jetzt einfach mal, ja.

              Warum so kompliziert? Mit einem entsprechenden zweiten Parameter in fopen() legt PHP die Datei auch automatisch an, sofern diese nicht existiert.

              MfG, Dennis.

              --
              Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
              Wissen ist gut, Können ist besser, aber das Beste und Interessanteste ist der Weg dahin! (Detlef G.)
              1. Hallo,
                siehe auch mein Posting weiter unten.

                Gruß Andreas

              2. Hello Dennis,

                Warum so kompliziert? Mit einem entsprechenden zweiten Parameter in fopen() legt PHP die Datei auch automatisch an, sofern diese nicht existiert.

                Haben wir nicht sogar mal eine "Archivfunktion" geschrieben?
                flat_file_backup(), sogar mit Kompession.

                Könnte für Andreas interessant sein.

                Nur die flat_open_lock() müsste dringend durch die Variante aus der Adressverwaltung getauscht werden. (a+) ist nicht mehr geeignet.

                Harzliche Grüße aus http://www.annerschbarrich.de

                Tom

                --
                Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                Nur selber lernen macht schlau
                1. Hi Tom,

                  Haben wir nicht sogar mal eine "Archivfunktion" geschrieben?
                  flat_file_backup(), sogar mit Kompession.

                  Das war eigentlich mehr dafür gedacht, eine Kopie einer Datei als Backup anzulegen - für eine Archivierung war flat_rec_copy() gedacht, ist allerdings noch nicht fertig ;-)

                  Nur die flat_open_lock() müsste dringend durch die Variante aus der Adressverwaltung getauscht werden. (a+) ist nicht mehr geeignet.

                  Hast du in der Weise nicht schon etwas gemacht?

                  MfG, Dennis.

                  --
                  Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
                  Das Leben ist kein Warenhaus - es nimmt nichts zurück. (Anette Louisan)
                  1. Hello,

                    Nur die flat_open_lock() müsste dringend durch die Variante aus der Adressverwaltung getauscht werden. (a+) ist nicht mehr geeignet.

                    Hast du in der Weise nicht schon etwas gemacht?

                    Die Funktion ist in der neuen Form in der Adressverwaltung drin. Ich habe nur keine Zeit, sie auch in den anderen Beispielen mal zu erneuern, UND dann auch eine Doku zu fertigen, WARUM die Änderung vorgenommen wurde. Schließlich werden auch nachfolgende Programmierung gerade von solchen Beispielen am Meisten haben.

                    Harzliche Grüße aus http://www.annerschbarrich.de

                    Tom

                    --
                    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                    Nur selber lernen macht schlau