Impressum  |   RSS  |  Forum

tsql

PHP Cache

Einfach mal einen Cache implementieren, ist die Zielstellung dieses Tipps. Der hier vorgestellte Cache kann einfach in bestehende Projekte integriert werden und legt die fertig geparste Seite im Dateisystem ab. Beim zweiten Aufruf der Seite liefert das Skript den Inhalt des Cachefiles an den Browser zurück.

Quelltext der Datei cache.php:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
	//cache verzeichnis definieren
	$cachedir = dirname(__FILE__) . '/cachedir/';
 
	//cachefile name definieren
	define('CACHFILE', $cachedir . md5($_SERVER['REQUEST_URI']));
 
	if(is_file(CACHFILE)){
		//cachefile gefunden, an den browser senden und skript beenden
		readfile(CACHFILE);
		exit;
	}
 
	//cachefile nicht gefunden
	ob_start("cache_callback");
 
	function cache_callback($buffer){
		if(!is_file(CACHFILE)){
			//cachfile  im dateisystem ablegen
			file_put_contents(CACHFILE,$buffer);
		}
 
	  //den buffer zur ausgabe an den browser zurückgeben
	  return $buffer;
	}
?>

Für jede zu cachende Seite muss folgendes Skript am Anfang des Quellcodes eingebunden werden:

1
 include 'cache.php';

Damit das Skript funktionieren kann, muss außerdem ein Verzeichnis “cachedir” angelegt werden.