PHP: ¿Cómo hago para forzar al IE a que me recargue una imagen sin usar su cache?
De Foros del Web
Cuando usamos en una página la carga de imágenes que siempre tienen el mismo nombre, el IE busca esa imagen en su cache.
Los métodos como:
Código PHP:
// Fecha en el pasado header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // siempre modificado header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // HTTP/1.1 header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); // HTTP/1.0 header("Pragma: no-cache");
Solamente afectan a los archivos include, css, js, html, etc. Pero no a las imagenes (Referenciado por Cluster)
Entonces lo que hay que hacer es "engañar" al IE, haciendole creer que nuestra imagen es una página dinámica. (Referenciado por josemi)
Al mandar a imprimir la imagen en la etiqueta HTML le contatenamos un número aleatorio dentro de un query string:
Código PHP:
$Nombre_Foto = "foto.jpg"; //Nombre de la imagen a mostrar $var = md5(time()); // Generamos el valor aleatorio $Nombre_Foto = "foto.jpg?var=".$var; //Contatenamos la variable
Código HTML:
<img src="<?php echo $Nombre_Foto; ?>">
--Jose-molina 22 Sep 2004
Este artículo es parte de las FAQs de PHP y el Manual de PHP.
- Indice de las FAQs: Conceptos, Configuración, Formularios, Manejo de Archivos, Integración con Bases de Datos, Sesiones, Extensiones y Librerías, Seguridad, Funciones, Clases y Objetos, Frameworks
- Recomendamos también: Guía Zend, Frameworks PHP, Aceleradores PHP
- Agregar al FAQ: PHP: Instrucciones para agregar una pregunta al FAQ de PHP
- Para preguntas sobre PHP: Foro de Php
