3) exit(); // Give up after five tries // } while (!$img); // If curl has returned a broken file, then try downloading again if ((!$img) && is_file($file)) $img = file_get_contents($file); } else { $img = file_get_contents($file); } $exp_gmt = gmdate("D, d M Y H:i:s", time() + $ttl * 60) ." GMT"; $mod_gmt = gmdate("D, d M Y H:i:s", filemtime($file)) ." GMT"; header("Expires: " . $exp_gmt); header("Last-Modified: " . $mod_gmt); header("Cache-Control: public, max-age=" . $ttl * 60); // for MSIE 5 header("Cache-Control: pre-check=" . $ttl * 60, FALSE); header ('Content-Type: image/png'); //readfile($file); echo $img;