Heim > Artikel > Backend-Entwicklung > So legen Sie die Cache-Zeit in PHP fest
Und beim Festlegen müssen Sie auch darauf achten, dass vor dem Header keine Ausgabe erfolgen darf, da sonst die Header-Einstellung erfolgt wird ungültig sein, aber ich habe noch nie darüber geschrieben, wie man den Cache für die Seite einstellt, obwohl wir wissen, dass es einige Methoden gibt, wie z. B. E- Natürlich gibt es einfache Einstellungen für TAG und dergleichen. Zum Beispiel vor der Ausgabe. Wir verwalten den Inhalt und behandeln ihn als E-Tag. Solange er sich nicht ändert, gibt es keine anderen Möglichkeiten. Der Code lautet wie folgt:In PHP können Sie den Seiten-Cache über die Methode „header()“ festlegen. Die Syntax lautet wie folgt: „header(“Pragma:cache“);$ExpStr = „Expires: „.gmdate(“D, d M Y H :i: s", ),GMT";" Wird in PHP verwendet. Im Folgenden werde ich einige Möglichkeiten zur Implementierung des Seiten-Caching vorstellen. Bevor Sie jedoch den Header verwenden, müssen Sie darauf achten, dass davor keine Ausgabe erfolgen kann, einschließlich Leerzeichen. Im Handbuch schreiben wir alle So richten Sie den Cache ein, damit der Code nicht blockiert wird. Der Code lautet wie folgt:
header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0"); // HTTP/1.1 header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past header("Pragma: no-cache"); // Date in the past
$seconds_to_cache = 3600; $ts = gmdate("D, d M Y H:i:s", time() + $seconds_to_cache) . " GMT"; header("Expires: $ts"); header("Pragma: cache"); header("Cache-Control: max-age=$seconds_to_cache");Cache 1 Stunde, hauptsächlich wegen der Ablaufzeit Dies muss mit gmdate und nicht mit date festgelegt werden, und die anderen müssen mit dem Ablaufdatum übereinstimmen.
Für von PHP generierte dynamische Inhalte muss nur die Zwischenspeicherung erzwungen werden Der folgende Code erfordert beispielsweise, dass der Browser die Datei einen Monat lang zwischenspeichert: <?php
header("Cache-Control: public");
header("Pragma: cache");
$offset = 30*60*60*24; // cache 1 month
$ExpStr = "Expires: ".gmdate("D, d M Y H:i:s", time() + $offset)." GMT";
header($ExpStr);
?>
Für statische Dateien unterstützen die meisten Server die dritte Ebene des Caching-Status, um die vierte Ebene zu erreichen Der Effekt besteht darin, entweder PHP zum Auslagern einer Ebene wie bei der vorherigen GZIP-Komprimierung zu verwenden und dann PHP zu verwenden, um sie zu verarbeiten. Oder es erfordert serverseitige Unterstützung. Mod_expires, ein Modul von APACHE, unterstützt das Hinzufügen von Expires-Headern zur Datei. Fügen Sie den folgenden Code zu Ihrem Blog-Verzeichnis hinzu. Wenn auf Ihrem Server das Modul mod_expires installiert ist, werden Bilder usw. automatisch für einen Monat zwischengespeichert, und HTML-Dokumente werden für 10 Minuten zwischengespeichert Wenn das Modul nicht installiert ist, wird kein Fehler angezeigt.
<IfModule mod_expires.c> ExpiresActive On ExpiresByType image/gif A2592000 ExpiresByType image/jpeg A2592000 ExpiresByType image/png A2592000 ExpiresByType application/x-shockwave-flash A2592000 ExpiresByType text/css A2592000 ExpiresByType application/x-javascript A2592000 ExpiresByType text/html A600 </IfModule>
Hier ist eine ausführlichere Dokumentation und Tutorials für mod_expires.
Das obige ist der detaillierte Inhalt vonSo legen Sie die Cache-Zeit in PHP fest. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!