Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/09/2012, 11:05
Avatar de Adrii952
Adrii952
 
Fecha de Ingreso: diciembre-2011
Ubicación: Madrid
Mensajes: 116
Antigüedad: 12 años, 4 meses
Puntos: 7
Problema con cache php

Hola, encontré estas funciones en internet para cachear imagenes leídas desde php:

Código PHP:
function displayGraphicFile ($graphicFileName,$fileType) {
  
$fileModTime filemtime($graphicFileName);
  
$headers getRequestHeaders();
  if (isset(
$headers['If-Modified-Since']) && (strtotime($headers['If-Modified-Since']) == $fileModTime)) {
    
header('Last-Modified: '.gmdate('D, d M Y H:i:s'$fileModTime).' GMT'true304);
  } else {
    
header('Last-Modified: '.gmdate('D, d M Y H:i:s'$fileModTime).' GMT'true200);
    
header('Content-type: '.$fileType);
    
header('Content-transfer-encoding: binary');
    
readfile($graphicFileName);
  }
}

function 
getRequestHeaders() {
  if (
function_exists("apache_request_headers")) {
    if(
$headers apache_request_headers()) {
      return 
$headers;
    }
  }
  
$headers = array();
  if (isset(
$_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
    
$headers['If-Modified-Since'] = $_SERVER['HTTP_IF_MODIFIED_SINCE'];
  }
  return 
$headers;

El código funciona bien, lo probé en un documento aparte y funciona.

Ahora, cuando lo he integrado en el código de mi red, por alguna extraña razón no funciona. La imagen siempre carga correctamente, pero desde el servidor en vez de desde la caché.

¿Alguien podría echarme una mano? Me haría un gran favor, llevo bastante tiempo comiéndome la cabeza con esto y no encuentro el problema. Gracias

Última edición por Adrii952; 01/09/2012 a las 11:29