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
Libérer: 2023-04-12 15:09:01
original
758 Les gens l'ont consulté

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
?>
Copier après la connexion

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;">';
?>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal