diff options
author | Andrew Dolgov <[email protected]> | 2013-03-19 09:25:36 +0400 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2013-03-19 09:25:36 +0400 |
commit | f0bd8e6531756b151c051f8ce5099d59408e71db (patch) | |
tree | 354b8a40671e5acaeb6431863e1be7127ca27d6f /include/functions.php | |
parent | e88c1943577993ffc661e92456b3d20c3b4ce832 (diff) |
rework image caching to work without permanent article content rewriting (refs #582)
Diffstat (limited to 'include/functions.php')
-rw-r--r-- | include/functions.php | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/include/functions.php b/include/functions.php index 43a9270eb..a7ac07b53 100644 --- a/include/functions.php +++ b/include/functions.php @@ -2590,10 +2590,17 @@ $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") { |