Maison  >  Article  >  développement back-end  >  Comment définir le temps de cache en php

Comment définir le temps de cache en php

藏色散人
藏色散人original
2020-09-01 09:35:143720parcourir

En php, vous pouvez utiliser la méthode "header()" pour définir le cache de la page. La syntaxe est telle que "header("Pragma: cache");$ExpStr = "Expires: ".gmdate. ("D, d M Y H:i:s", ),GMT";".

Comment définir le temps de cache en php

Recommandé : "Tutoriel vidéo PHP"

php header() définit le cache de la page

La fonction header() est largement utilisée en php. Ci-dessous, je présenterai quelques méthodes pour l'utiliser pour obtenir une page. mise en cache, mais il doit être utilisé avant d'utiliser l'en-tête. Notez qu'il ne peut y avoir aucune sortie avant, y compris les espaces. Dans le manuel, nous décrivons comment définir le cache pour que le code ne soit pas mis en cache.

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

et dans Lors du réglage, vous devez également faire attention au fait qu'il ne peut pas y avoir de sortie avant l'en-tête, sinon le paramètre d'en-tête sera invalide, mais je n'ai jamais écrit sur la façon de définir le cache pour le page, bien que nous sachions qu'il existe certaines méthodes, telles que E-TAG, et bien sûr il existe des paramètres simples, par exemple, avant de sortir, nous md5 le contenu et le traitons comme une balise électronique. ne change pas, cela n'aura aucun impact. Il existe d'autres moyens, le code est le suivant :

$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 pendant 1 heure, principalement pour l'expiration. L'heure doit être définie avec gmdate, pas avec date. noté. D'autres sont similaires. maxage doit être cohérent avec expire

Pour le contenu dynamique généré par PHP, il vous suffit de générer une mise en cache forcée avant que le contenu ne soit généré. Par exemple, le code suivant est suffisant. nécessite que le navigateur mette le fichier en cache pendant 1 mois. Le code est le suivant :

<?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); 
?>

Pour les fichiers statiques, les serveurs généraux prennent en charge le troisième niveau d'état du cache. Pour atteindre le quatrième niveau, soit. utilisez PHP pour externaliser une couche, puis utilisez PHP pour la traiter, ou vous avez besoin d'un support côté serveur, un module d'APACHE, prend en charge l'ajout d'un en-tête d'expiration au fichier. Ajoutez le code suivant au fichier .htaccess de votre blog. si le module mod_expires est installé sur votre serveur, il prendra automatiquement effet. Les images, etc. doivent être mises en cache pendant un mois et les documents HTML sont mis en cache pendant 10 minutes. Si le module n'est pas installé, il n'y aura pas d'erreur. Le code est le suivant :

<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>

Il existe une documentation et des tutoriels plus détaillés pour mod_expires ici. Cependant, je tiens à noter que mod_expires n'est pas installé sur la plupart des serveurs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Comment changer l'URL en phpArticle suivant:Comment changer l'URL en php