Php Cache
Gerade bei Websites mit
viel Traffic und/oder vielen Seiten mit Datenbankaktionen lohnt es sich,
über Cachingmechanismen nachzudenken. Hier bietet PHP eine leicht zu
implementierende Möglichkeit.
Das Prinzip des Cachings mit PHP ist relativ einfach:
Beim Aufruf eines PHP-Skripts wird geprüft, ob diese Datei bereits im
Cache liegt. Falls ja, wird die gecachte Datei aufgerufen. Falls nein,
wird die Originalseite ausgegeben und gleichzeitig eine Cache-Datei
angelegt. Der folgende Code geht von Folgendem aus:
die zu chachende Datei endet auf "php", die gechachte Datei soll
auf "html" enden,
das Cache-Verzeichnis heißt "my_cache", ist mit Schreibrechten
versehen und liegt im Root des Servers.
|
Script: |
<?php
//der Dateiname wird ohne die Endung "php" extrahiert:
$filename= basename($PHP_SELF,"php");
if (file_exists("my_cache/".$filename."html")) {
//wenn sie existiert, leitet die folgende Zeile den Request auf die Cachedatei um
header("Location:my_cache/".$filename."html");
} else{
ob_start();
?>
hier folgt nun der zu cachende Inhalt
<html>
<body>
hier liegen jede Menge Datenbankabfragen etc.
</body>
</html>
<?php
//der Inhalt des Puffers wird in $content abgelegt
$content=ob_get_contents();
//eine Datei mit dem Namen "$filename.cache" wird im Cacheverzeichnis angelegt
$fh=fopen ("my_cache/".$filename."cache", "w");
//der Pufferinhalt wird in diese Datei geschrieben
fputs ( $fh, $content);
fclose($fh);
//die Datei wird auf ihren endgültigen Namen (Endung "html") umbenannt:
rename ("my_cache/".$filename."cache", "my_cache/".$filename."html");
ob_end_flush ();
}
?>
|
|