Sönke Tesch: Script alle 5 min aufrufen! (Urzeitabfrage coden :? )

Beitrag lesen

Eine Frage habe ich jedoch noch:
Wie lege ich in der Timestamp Datei mehrere Timestamps für mehrere veschiedene Scripte an?

Autsch. Der Standardansatz wäre pro Skript eine Zeile mit der jeweiligen Zeit, das ist aber aufwendig und fehlerträchtig.

PHP bietet eine nette Funktion namens serialize() (unter Funktionen für Variablen, http://www.php.net/manual/de/ref.variables.php), mit der sich Variablen in einen speicherbaren Text verwandeln lassen (das Gegenstück, also Text->Variable nennt sich unserialize). Der Witz an der Sache: Das funktioniert mit wirklich jedem Variablentyp.
Man könnte also alle Zeiten in ein Feld packen, das am Anfang jedes Skriptes auslesen, eventuell die aktuelle Zeit an die passende Stelle schreiben und dann wieder zurückschreiben.

Wenn Du aber schon schreibst, daß Deine Seiten häufig aufgerufen werden, ist dieser Weg nicht der günstigste. Abgesehen von der Serverlast durch die ständigen Plattenzugriffe kann es vorkommen, daß sich die Skripte um den Dateizugriff schlagen müssen und so bei großem Andrang Fehler entstehen und Updates ausfallen.

Deshalb ein wesentlich besserer Weg:
Dein Skript, daß alle paar Minuten laufen soll, erzeugt ja sicher Daten. Du hast immer die Möglichkeit, zusammen mit diesen Daten ein Änderungsdatum zu speichern.
Werden zum Beispiel Dateien erzeugt oder geändert passiert das sogar automatisch, denn jede Datei hat ein Änderungsdatum, das sich abfragen lässt (siehe http://www.php.net/manual/de/ref.filesystem.php).
Alles, was Du in dem Fall machen müsstest, wäre das Dateiänderungsdatum zu holen und mit der aktuellen Uhrzeit zu vergleichen - kein lästiges Schreiben der letzten Änderung in eine Datei mehr.
Auch bei Datenbankverwendung lässt sich sowas realisieren, SQL bietet zum Beispiel einen Typ timestamp an, der automatisch bei Änderungen aktualisiert wird.

Kann ich die Timestamps auch so auslesen, das ich sieh z.B. zurückgeben kann wie:

  • Infos wurden zuletzt aktualisiert um: XXXXX

Alles, was Du dazu brauchst, findest Du in dem Kapitel mit den Datums- und Zeitfunktionen, in dem Du auch schon time() gefunden hast (http://www.php.net/manual/de/ref.datetime.php).

Tipp: Wenn Du die Anleitung zu einer Funktion vor der Nase hast, lies Dir grundsätzlich alle Funktionsbeschreibungen in der Nähe, also in dem Kapitel, kurz durch.
Nur so bekommst Du einen Überblick, welche Funktionen vorhanden sind. Und bei der nächsten Frage klingelt's dann vielleicht schon von selber ("Irgendwo habe ich doch gelesen..").

Wenn Du jedesmal nur die einzelnen Funktionen anschaust, lernst Du PHP nie richtig kennen.

Script um Timestamp auszulesen

[..]

if( time() % $zeit > 200 )

===
Was ist denn das? Normalerweise wäre da doch eher etwas in der Richtung

if (time()-$zeit>5*60) // aktuelle abzüglich änderung größer 5 min?

gefragt? Ich stehe ja ach gerne mal auf dem Schlauch; ist die Verwendung des Divisionsrestes zum Bestimmen des Abstands zweier Zeitpunkte höhere Mathematik? ;)

Gruß,
  soenk.e