Maison >développement back-end >Problème PHP >Comment empêcher le format de fichier de cache d'image en php
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.
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.
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 = 'http://example.com/images/logo.png?rand=' . uniqid(); //在图片URL中添加一个唯一标识符 echo '<img src="' . $img_url . '">'; ?>
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.
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!