$FileToFind = ''; $CacheFolder = NULL; $CacheImages = CacheImage::GetCacheImages(); if (isset($argv) && $argc > 0) { $CacheFolder = sprintf('%1$s/cache', dirname($_SERVER['PHP_SELF'])); } else { $CacheFolder = 'cache'; } /* @var $it RecursiveIteratorIterator */ $it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($CacheFolder, FileSystemIterator::SKIP_DOTS | FileSystemIterator::CURRENT_AS_FILEINFO)); /* @var $file SplFileInfo */ foreach ($it as $file) { $idToFind = $file->getBasename('.jpg'); $matches = array(); if (preg_match_all('/^(?<Prefix>[MXSIV]-)?[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}(?<Suffix>-[1-9][0-9]*-[1-9][0-9]*)?$/i', $idToFind, $matches) > 0) { $CacheImageInDB = CacheImage::GetCacheImages(new CacheImageSearchParameters(str_ireplace($matches['Prefix'], '', str_ireplace($matches['Suffix'], '', $idToFind)))); if (!$CacheImageInDB) { unlink($file->getRealPath()); } } } /* @var $CacheImage CacheImage */ foreach ($CacheImages as $CacheImage) { $FileToFind = $CacheImage->getFilenameOnDisk(); if (!file_exists($FileToFind)) { CacheImage::Delete($CacheImage, $CurrentUser); } } $infoSuccess = new Info($lang->g('MessageCacheImagesCleaned')); Info::AddInfo($infoSuccess); HTMLstuff::RefererRedirect();