require_once "config.php";
- $url = base64_decode($_GET['url']);
+ // backwards compatible wrapper for old-style image caching
+ /* if (isset($_GET['url'])) {
+ $url = base64_decode($_GET['url']);
- $filename = CACHE_DIR . '/images/' . sha1($url) . '.png';
+ $filename = CACHE_DIR . '/images/' . sha1($url) . '.png';
- if (file_exists($filename)) {
- header("Content-type: image/png");
- echo file_get_contents($filename);
- } else {
- header("Location: $url");
+ if (file_exists($filename)) {
+ header("Content-type: image/png");
+ echo file_get_contents($filename);
+ } else {
+ header("Location: $url");
+ }
+
+ return;
+ } */
+
+ @$hash = basename($_GET['hash']);
+
+ if ($hash) {
+
+ $filename = CACHE_DIR . '/images/' . $hash . '.png';
+
+ if (file_exists($filename)) {
+ header("Content-type: image/png");
+ echo file_get_contents($filename);
+ } else {
+ header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
+ echo "File not found.";
+ }
}
+
?>
$entry->setAttribute('href',
rewrite_relative_url($site_url, $entry->getAttribute('href')));
- if ($entry->hasAttribute('src'))
- if (preg_match('/^image.php\?i=[a-z0-9]+$/', $entry->getAttribute('src')) == 0)
- $entry->setAttribute('src',
- rewrite_relative_url($site_url, $entry->getAttribute('src')));
+ if ($entry->hasAttribute('src')) {
+ $src = rewrite_relative_url($site_url, $entry->getAttribute('src'));
+
+ $cached_filename = CACHE_DIR . '/images/' . sha1($src) . '.png';
+
+ if (file_exists($cached_filename)) {
+ $src = SELF_URL_PATH . '/image.php?hash=' . sha1($src);
+ }
+
+ $entry->setAttribute('src', $src);
+ }
}
if (strtolower($entry->nodeName) == "a") {
}
if ($cache_images && is_writable(CACHE_DIR . '/images'))
- $entry_content = cache_images($entry_content, $site_url, $debug_enabled);
+ cache_images($entry_content, $site_url, $debug_enabled);
$entry_content = db_escape_string($entry_content, false);