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.

Herramientas personales