PHP-Seiten-Caching verwendet hauptsächlich die ob-Reihe von Funktionen, wie z. B. ob_start(), ob_end_flush(), ob_get_contents()
Das Folgende ist der Codierungsteil.
1. Initialisierungsfunktion, normalerweise Festlegen des Seiten-Cache-Pfads, des Namensformats für Cache-Dateien usw., die je nach persönlichen Vorlieben angepasst werden können. Die hier verwendete Identifikations-ID ist der verschlüsselte Parameter $_SERVER[REQUEST_URI]. Am Ende dieser Funktion gibt es eine if-Beurteilung: Wenn der Cache-Zeitraum nicht abgelaufen ist, laden Sie die Cache-Datei, andernfalls laden Sie die Quelldatei.
Code kopieren Der Code lautet wie folgt:
function page_init()
{
$url = $_SERVER['REQUEST_URI'];// Sub-URL, dieser Parameter ist im Allgemeinen eindeutig
$pageid = md5($url);
$dir = str_replace('/','_',substr($_SERVER['SCRIPT_NAME'],1,-4)); Verzeichnisbenennungsmethode, wie exp_index
if(!file_exists($pd = PAGE_PATH.$dir.'/'))@mkdir($pd,0777) oder die("$pd-Verzeichniserstellung fehlgeschlagen"); >//wie z. B. zwischencache/page/exp_index/
define('PAGE_FILE',$pd.$pageid.'.html');
// z. B. zwischencache/page/exp_index/cc8ef22b405566745ed21305dd248f0e.html
$contents = file_get_contents( PAGE_FILE);//Auslesen
if($contents && substr($contents, 13, 10) > time() )//Entsprechend dem im page_cache hinzugefügten benutzerdefinierten Header () function
{
echo substr($contents, 27);
exit(0);
}
return true; 2. Seiten-Caching-Funktion, hier wird ein Trick verwendet: Fügen Sie dem Inhalt der Cache-Datei eine Header-Information – die Ablaufzeit – hinzu, sodass Sie jedes Mal nur die Ablaufzeit im Header mit der aktuellen Zeit vergleichen müssen (durchgeführt in Mit der Funktion page_init() können Sie feststellen, ob der Cache abgelaufen ist.
Code kopieren Der Code lautet wie folgt:
function page_cache($ttl = 0)
{
$ttl = $ttl ? $ttl : PAGE_TTL;//Cache-Zeit, Standard 3600s
$contents = ob_get_contents();//Inhalt aus Cache abrufen
$contents = "n".$contents; 🎜> //Benutzerdefinierten Header hinzufügen: Ablaufzeit = Generierungszeit + Cache-Zeit
file_put_contents(PAGE_FILE, $contents); //In Cache-Datei schreiben
ob_end_flush(); //Cache freigeben
}
3. Funktionsverwendung, bitte beachten Sie, dass diese beiden Funktionen eine sequentielle Ausführungsreihenfolge haben, und vergessen Sie nicht ob_start()
Kopieren Sie den Code. Der Code lautet wie folgt:
page_init() ;//Initialisierung des Seitencaches
ob_start();//Caching einschalten
...//Codesegment
page_cache(60);//Normalerweise die letzte Zeile
?>