puedes usar tu codigo normalmente, lo único que debes de cambiar es el
src para que el navegador solicite la imagen a php y éste se encargue de expirar la caché, recuerda que las imágenes se solicitan al servidor después de cagar el DOM:
Código PHP:
<?php
if (file_exists("../fotos/".$array['cedula'].".jpg")){
echo "<img src='imageexpire.php?img=../fotos/".$array['cedula'].".jpg' border='0' width='120' height='150'>";
}else{
echo "<img src='../fotos/sinfoto.jpg' border='1' width='120' height='150'>";
} ?>
y como en el mismo script se verifica la existencia de la imágen puedes omitir esa parte en tu
plantilla quedando:
imagexpire.php:
Código PHP:
//expirado la caché para imágenes
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" ); // disable IE caching
header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . " GMT" );
header("Cache-Control: no-cache, must-revalidate" );
header("Pragma: no-cache" );
$imagen = $_GET['img'];
if(file_exists($imagen)){
//obteiendo la información de la ruta:
$info=pathinfo($imagen);
//especificando el tipo de salida:
header("Content-type: image/".$info['extension']);
readfile($imagen);
}else{
header("Content-type: image/jpg");
readfile('../fotos/sinfoto.jpg');
}
y en la plantilla:
Código PHP:
echo "<img src='imageexpire.php?img=../fotos/".$array['cedula'].".jpg' border='0' width='120' height='150'>";
o haces lo contrario y lo dejas como al principio te indique.
PD: usa
<?php por motivos de estándar