web-dev-qa-db-de.com

Wie lösche ich den Browser-Cache mit PHP?

Wie lösche ich den Browser-Cache mit PHP?

45
ZA.
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Content-Type: application/xml; charset=utf-8");
49
ZA.

Sie können den Browser-Cache löschen, indem Sie die folgenden Header festlegen:

<?php
header("Expires: Tue, 01 Jan 2000 00:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>
32
user1032289

Es sieht so aus, als müssten Sie versionieren. Wenn also eine Änderung eintritt, fängt der Browser etwas Neues ein und der Benutzer muss den Cache des Browsers nicht leeren. 

Sie können dies mit den Unterordnern (example /css/v1/style.css) oder mit dem Dateinamen (example: css/style_v1.css) oder sogar durch das Festlegen verschiedener Ordner für Ihre Website tun. Beispiel:

www.mywebsite.com/site1

www.mywebsite.com/site2

www.mywebsite.com/site3

Verwenden Sie eine .htaccess oder ändern Sie sogar httpd.conf, um zu Ihrer aktuellen Anwendung umzuleiten.

Wenn es sich um one image oder page handelt:

    <?$time = date("H:i:s");?>
    <img src="myfile.jpg?time=<?$time;?>">

Sie können $ time für Teile verwenden, wenn Sie nicht zwischenspeichern möchten. Es wird also immer ein neues Bild gezogen. Bei der Versionierung ergibt sich ein besserer Ansatz, andernfalls kann es zu einer Überlastung Ihres Servers kommen. Denken Sie daran, dass der Cache des Browsers nicht nur für Benutzer geeignet ist, sondern auch für Ihren Server.

0