Maison >développement back-end >Problème PHP >Comment php ne peut-il pas générer de cache ?

Comment php ne peut-il pas générer de cache ?

PHPz
PHPzoriginal
2023-05-06 22:00:07765parcourir

Dans le développement web, la mise en cache est souvent un casse-tête. Bien que la mise en cache puisse améliorer la vitesse d'accès et les performances du site Web, nous espérons parfois ne pas utiliser la mise en cache et récupérer les données à chaque demande afin de garantir l'actualité et l'exactitude des données. En Php, il existe de nombreuses méthodes pour obtenir l'effet de ne pas générer de cache. Cet article présentera ces méthodes en détail.

  1. Définir les informations d'en-tête d'en-tête

En Php, vous pouvez contrôler la mise en cache en définissant les informations d'en-tête d'en-tête. Le code suivant montre comment définir les informations d'en-tête Header pour désactiver la mise en cache :

<?php
  header("Expires: Tue, 26 Jul 1970 05:00:00 GMT");
  header("Cache-Control: no-cache, must-revalidate");
  header("Pragma: no-cache");
?>

Dans le code ci-dessus, le champ Expire est défini sur une heure passée, de sorte que le navigateur pense que la page a expiré. et ne la mettra pas en cache ; Cache Les champs -Control et Pragma sont définis sur no-cache afin que le navigateur ne mette pas la page en cache. Après avoir défini les informations d'en-tête Header, les données seront réobtenues pour chaque requête au lieu de lire les données du cache.

  1. Utilisez la fonction session_cache_limiter

La fonction session_cache_limiter est une fonction fournie avec Php et peut être utilisée pour contrôler le cache. Le code suivant montre comment utiliser la fonction session_cache_limiter pour désactiver la mise en cache :

<?php
  session_cache_limiter("nocache");
  session_start();
?>

Dans le code ci-dessus, la fonction session_cache_limiter("nocache") est appelée, ce qui signifie qu'il est interdit au navigateur de mettre en cache cette page . En utilisant la fonction session_cache_limiter, toutes les sorties seront désactivées de la mise en cache, y compris la sortie du contenu via la fonction echo.

  1. Désactiver le module OPcache

OPcache est un module accélérateur officiellement fourni par Php, qui peut mettre en cache le code compilé pour améliorer les performances. Mais parfois, nous souhaitons pouvoir désactiver OPcache pour garantir que le code est réexécuté à chaque requête afin d'obtenir les derniers résultats. Le code suivant montre comment désactiver le module OPcache :

<?php
  ini_set("opcache.enable", 0);
?>

Dans le code ci-dessus, la fonction ini_set("opcache.enable", 0) est appelée, indiquant que le module OPcache est désactivé. L'utilisation de cette méthode garantit que le code est réexécuté à chaque requête.

  1. Éviter d'utiliser ETag

ETag est un identifiant utilisé dans le protocole HTTP pour déterminer si une ressource a été modifiée. Lorsqu'un navigateur demande une ressource, le serveur génère un ETag basé sur le contenu de la ressource puis l'envoie au navigateur. Lorsque la même ressource sera demandée la prochaine fois, le navigateur enverra l'ETag obtenu la dernière fois au serveur, et le serveur utilisera cet ETag pour déterminer si la ressource a été modifiée. Si la ressource n'a pas été modifiée, un code d'état 304 Not Modified sera renvoyé et le navigateur obtiendra la ressource du cache. Pour éviter la mise en cache, on peut éviter d'utiliser ETag, voici un exemple :

<?php
  header("ETag: ");
?>

Dans le code ci-dessus, définissez l'ETag sur une chaîne vide afin que le serveur ne puisse pas déterminer si la ressource a été modifiée, le contenu de la ressource sera renvoyé directement au lieu de renvoyer le code d'état 304 Non modifié. Cela garantit que la ressource est récupérée à chaque demande.

  1. Supprimer le cache

En plus de la méthode ci-dessus, une autre méthode réalisable consiste à supprimer le cache. Vous pouvez utiliser la fonction de dissociation pour supprimer des fichiers en Php. Voici un exemple :

<?php
  $filename = "cache.txt";
  if(file_exists($filename)){
    unlink($filename);
  }
?>

Dans le code ci-dessus, utilisez la fonction de dissociation pour supprimer le fichier cache.txt. Lorsque vous devez supprimer le cache, vous pouvez utiliser cette méthode pour supprimer les fichiers du cache.

Résumé

Dans le développement Web, la mise en cache est une considération importante. Bien que la mise en cache puisse améliorer efficacement les performances du site Web, nous souhaitons parfois pouvoir désactiver la mise en cache pour garantir l'actualité et l'exactitude des données. Cet article présente cinq méthodes pour désactiver la mise en cache dans Php, notamment la définition des informations d'en-tête Header, l'utilisation de la fonction session_cache_limiter, la désactivation du module OPcache, l'évitement de l'utilisation d'ETag et la suppression du cache. L'utilisation de la méthode ci-dessus peut contrôler efficacement le cache de la page et garantir que les données sont récupérées à chaque demande.

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