Hallo,
in meinem letzten Tutorial habe ich beschrieben wie man einen Statpicker mit Cache erstellt, heute möchte ich zeigen wie ihr eure Mediadaten cachen könnt. Die Erzeugung der Mediadaten kann unter Umständen viel Last für den Server verbrauchen jenachdem wieviele Statistiken dort angezeigt werden deshalb ist es sinnvoll wenn man die Mediadaten z.B. nur alle 15 Minuten neu generiert.

Das Cachen der Mediadaten ist in wenigen Schritten erledigt und benötigt nicht viel arbeit.

Systemvorraussetzungen
- PHP >= 5

1) Cache Verzeichnis erstellen
Wir brauchen wieder ein Verzeichnis wo wir die Mediadaten zwischenspeichern wer das letzte Tutorial schon gemacht hat der besitzt bereits das Verzeichnis "dynamic_cache" im Hauptverzeichnis vom VMS. Wer dies noch nicht hat muss es noch erstellen und chmod777 vergeben.


2) Cache in Mediadaten einbauen

In der Datei /content/intern/mediadaten.php muss man nun den Cache einbauen, dafür prüft man zum einen am Anfang der Datei wieder ob die Cache-Datei existiert und ob sie veraltet ist das ganze geschieht mit:

PHP-Code:
if (!file_exists('dynamic_cache/mediadaten.txt') || @filemtime('dynamic_cache/mediadaten.txt') < time()-600)

Die 600 steht dabei wieder für die Zahl der Sekunden in der die Mediadaten neu erstellt werden sollen (Hier 10 Minuten).

Wenn die Datei nicht existiert oder veraltet ist starten wir wieder den internen php Puffer wo die Ausgaben drin gespeichert werden das ganze wieder mit:

PHP-Code:
ob_start(); 
Nach den ganzen Ausgaben schreiben wir dann noch den Inhalt vom Puffer in die Cache Datei mit:

PHP-Code:
   file_put_contents('dynamic_cache/mediadaten.txt'ob_get_flush() ); 
Zu guter letzt kommt noch der Teil aus der else Schleife mit dem wir - sofern vorhanden - die gecachten Mediadaten laden und ausgeben:

PHP-Code:
}else{
 echo 
file_get_contents('dynamic_cache/mediadaten.txt');

Das wars auch schon

Der Mediadaten Cache darf gratis in Verbindung mit dem VMS1.x genutzt werden.

Gruß
Gremlin

Ps.: Wer mir was spenden will dafür kann es gerne tun!
Klammid: 184974
PrimusPortal Nick: Gremlin
PayPal: gremlincomputer [at] gmx [punkt] de
Ich freue mich auch über Backlinks von eurer Homepage hierzu könnt ihr diesen Code nutzen:
Code:
<a href="http://www.joke-factory.de" title="Witze" rel="follow">Witze</a>