Guten Morgen.
Mit Cronjob:
- Dateinamen mit einer Art "Flag" kennzeichnen (bspw. immer gleicher Anfang; quasi "Schlüsselwort_beliebigerHash", damit Du beim Iterieren durchs Verzeichnis die zu löschende Datei findest (erspart Dir das Ablegen des Namens in einer Datenbank).
- per Automation dann eben eine Methode/Funktion aufrufen, die Deine per Iteration (durchs Verzeichnis) gefundene Datei via unlink() entfernt; beachte, dass Du hier sowohl den absoluten Pfad nehmen solltest (beginnt NICHT mit dem Verzeichnis Deiner Domain; Info bekommst Du aus php_info()) sowie bei Deinem Hoster mal testen müsstest, ob der das zulässt.
- neue Datei erstellen nach dem Schema "Schlüsselwort_beliebigerHash.php"
Mit Pseudo-Cron:
Wenn Du keinen echten Cronjob einsetzen willst/kannst, so kannst Du einen "Pseudo-Cron" anwenden. Funktioniert in Deinem Fall wie folgt:
- Deine Internetseite verfügt an relevanten Stellen (bspw. wenn der User den Bereich besucht, wo diese Datei eingesetzt wird; oder auch schon früher) über eine weitere Funktion, die prüft, wann zuletzt gelöscht wurde und ob daher gelöscht werden muss.
- jeder Besucher ruft das Script auf, welches lediglich ausliest (Datenbank/File auf Server), wann die Löschung bzw. Neuanlage zuletzt lief.
- Ist der letzte Zeitpunkt 30 Minuten zum jetzigen Zeitpunkt her, wird die vorige Datei gelöscht, eine neue erstellt und der Zeitstempel aktualisiert
- ist der letzte Zeitpunkt noch keine 30 Minuten her, passiert nichts
Der Vorteil der letzten Art ist, dass tatsächlich kein Dienst läuft, der nicht erforderlich ist (bspw. wenn kein Besucher kommt und dennoch der Cronjob stets läuft). Bei Wartungsarbeiten kann man Cronjobs auch mal "vergessen" bzw. "übersehen".
Bedenke, dass diese Datei bei Google und sonstigen Suchmaschinen nix zu suchen hat; weder per Google Analytics, noch "per Zufall" indexiert werden sollte (also: noindex im Meta-Bereich und/oder Suchmaschinen eher eine 404 liefern bei Request auf diese Seite). Wenn Dich der Einsatz der Seite interessiert, würde ich zu einer eigenen Art des Loggens tendieren (kleine Table mit Dateiname, geklickte Files, Tagesdatum und Gesamt-Impressionen; geht auch als JSON-Konstrukt in einem File).
Deine Dateierstellung bzw. den Namen der Datei ("Schlüsselwort_" etc.) kannst Du simpel halten - ein paar Beispiele (bedenke, dass die [ und ] nicht dazu gehören);
- "Schlüsselwort_[ md5("DEIN_BEGRIFF" . time()) ].php // time, damit der Hash immer anders ist
- "Schlüsselwort_[ time() ].php // oder direkt nur als timestamp der Generierung
In Deiner Internetseite, die später diese Datei nutzen (verlinken) soll, wirst Du eine Funktion benötigen, die durch das Verzeichnis wieder iteriert (also "schau Dir alle Dateien in einem Verzeichnis an und suche nach Dateien mit dem Namen "Schlüsselwort_" am Anfang"; der "DirectoryIterator" in PHP ist super-easy). Es empfiehlt sich daher eigentlich, dass diese Datei in einem eigenen Verzeichnis liegt und nicht im "root" Deiner Domain.
Aber vielleicht hat noch wer eine andere Idee/andere Vorschläge oder würde es ganz anders lösen. Es ist immer abhängig davon, was schon eingesetzt wird (bspw. Cronjobs), wie fit Du bist oder ob man unbedingt für sowas winziges eine Datenbank involviert (weil ein Name gespeichert werden müsste). Das ist alles wohl die Kategorie "Geschmackssache".
Viel Erfolg - das ist viel wichtiger.