Maison >développement back-end >Problème PHP >Comment empêcher le format de fichier de cache d'image en php

Comment empêcher le format de fichier de cache d'image en php

PHPz
PHPzoriginal
2023-04-12 15:06:32758parcourir

PHP est un langage de script côté serveur largement utilisé, vous pouvez écrire du code PHP pour les applications Web et l'exécuter sur le serveur. En PHP, vous rencontrez parfois quelques problèmes liés à la mise en cache des images. Par exemple, lorsque vous ouvrez un site Web dans un navigateur, ses images ne peuvent pas être mises à jour ou changent très lentement. Cela est généralement dû aux images mises en cache par le navigateur ou le serveur. Par conséquent, cet article vous expliquera comment créer des formats de fichiers d'images sans cache en PHP.

  1. Forcer le navigateur à ne pas mettre en cache les images

Par défaut, le navigateur mettra en cache les images téléchargées, ce qui peut accélérer l'accès, mais cela entraîne également quelques problèmes. En PHP, vous pouvez utiliser la fonction header() pour contrôler le temps de cache du navigateur en définissant Cache-Control. Par exemple :

<?php
header("Cache-Control: no-cache, no-store, must-revalidate"); //强制浏览器不缓存
header("Expires: 0"); //指定过期时间为0
?>

De cette façon, lorsque le serveur renvoie une image, il définira l'en-tête de réponse HTTP pour indiquer au navigateur de ne pas mettre cette image en cache et téléchargera à chaque fois la dernière image du serveur.

  1. Ajouter une chaîne aléatoire à l'URL de l'image

Cette méthode consiste à faire croire au navigateur qu'il s'agit d'une nouvelle image en ajoutant une chaîne aléatoire à l'URL de l'image, afin de télécharger la dernière image. La chaîne aléatoire peut être un horodatage, un UUID ou un nombre aléatoire. Par exemple :

<?php
$img_url = &#39;http://example.com/images/logo.png?rand=&#39; . uniqid(); //在图片URL中添加一个唯一标识符
echo &#39;<img src="&#39; . $img_url . &#39;">';
?>

Dans cet exemple, en ajoutant un nombre aléatoire après l'URL, une nouvelle image sera téléchargée à chaque fois que l'image sera chargée.

  1. Définissez l'image pour qu'elle ne soit pas mis en cache sur le serveur

La dernière méthode consiste à définir l'image pour qu'elle ne soit pas mis en cache sur le serveur. Dans le serveur Apache, vous pouvez annuler le cache des images en ajoutant le code suivant au fichier .htaccess :

<FilesMatch "\.(jpg|png|gif)$">
  Header set Cache-Control "max-age=0, no-store"
</FilesMatch>

Ce code signifie qu'il ne prend effet que pour les fichiers .jpg, .png et .gif. Définissez le cache d'en-tête de réponse. -Contrôle sur "max-age=0, no-store". Cela obligera le navigateur à télécharger à chaque fois les dernières images du serveur.

Résumé

En modifiant l'en-tête de réponse HTTP, en ajoutant des paramètres aléatoires à l'URL ou en définissant l'en-tête de réponse sur le serveur, vous pouvez faire en sorte que les images en PHP n'aient pas de format de fichier mis en cache. De cette manière, les dernières images peuvent être affichées quel que soit le navigateur utilisé, offrant ainsi une meilleure expérience aux utilisateurs.

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