SELFPHP

SELFPHP-Druckversion
Original Adresse dieser Seite:
http://www.selfphp.de/praxisbuch/praxisbuchseite.php?site=291&group=51
© 2001-2017 E-Mail SELFPHP OHG, info@selfphp.de
© 2005-2017 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de


Cache-Control


Für den Cache-Control stehen Ihnen in PHP ebenfalls Funktionen zur Verfügung, die man im Header einsetzen kann. Die Standardbefehle zum Steuern des Caches lauten Last-Modified, Cache-Control und Pragma. Sie werden auch von sämtlichen Browsern interpretiert.


Zeitbegrenztes Cachen

Im folgenden Beispiel wird das Cachen einer Seite zugelassen, jedoch wird eine befristete Zeitspanne festgelegt, bis zu der die Seite verfällt oder aktualisiert werden muss.

<?php
// Cache-Lebensdauer (in Minuten)
$dauer = 15;
$exp_gmt = gmdate("D, d M Y H:i:s", time() + $dauer * 60) ." GMT";
$mod_gmt = gmdate("D, d M Y H:i:s", getlastmod()) ." GMT";

header("Expires: " . $exp_gm);
header("Last-Modified: " . $mod_gmt);
header("Cache-Control: public, max-age=" . $dauer * 60);
// Speziell für MSIE 5
header("Cache-Control: pre-check=" . $dauer * 60, FALSE);
?>

Die Funktion getlastmod() gibt die Zeit der letzten Änderung der aktuell aufgerufenen Seite an. Um das Cachen einer Seite auf private Caches zu begrenzen, muss man den Code wie folgt anpassen:

<?php
// Cache-Lebensdauer (in Minuten)
$dauer = 15;
$exp_gmt = gmdate("D, d M Y H:i:s", time() + $dauer * 60) ." GMT";
$mod_gmt = gmdate("D, d M Y H:i:s", getlastmod()) ." GMT";

header("Expires: " . $exp_gm);
header("Last-Modified: " . $mod_gmt);
header("Cache-Control: private, max-age=" . $dauer * 60);
// Speziell für MSIE 5
header("Cache-Control: pre-check=" . $dauer * 60, FALSE);
?>