Datei zu bestimmten Datum unter anderem Namen Speichern
Andreas
- php
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
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
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
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...
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
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.
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
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
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
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
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
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.
Hallo,
siehe auch mein Posting weiter unten.
Gruß Andreas
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
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.
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