动态设置phpThumb缓存文件夹

分享到: 更多

WordPress中安装了一个可以生成缩略图的主题,使用了phpThumb类来生成缩略图,最近发现缩略图很多无法显示,研究了一天终于解决了。
phpThumb的原理是请求链接中带着源图地址,phpThumb会先检查缓存文件夹中是否已经保存了这张图的缩略图,有的话就直接显示,没有就生成一张保存在缓存文件夹并显示。
缓存文件夹默认是phpThumb下的cache目录,大部分时间使用起来是没问题的,但如果服务器对单个目录有文件总数限制,随着缓存文件夹中的缩略图越存越多,总有一天会无法生成缩略图,我的空间就遇到了这个问题。
wordpress中的图片附件是按月存储在不同的文件夹,不如缩略图也按月存储。
phpThumb的缓存文件夹设置在phpThumb.config.php文件中:

$PHPTHUMB_CONFIG['cache_directory'] = dirname(__FILE__).'/cache/';                            // set the cache directory relative to the phpThumb()

phpThumb的调用链接:
…/phpthumb/phpThumb.php?src=http://www.***.com/wp-content/uploads/2011/04/123.jpg&w=153&h=110&zc=1
所以在phpThumb.php中通过src参数取到月份,下面修改缓存文件夹的代码要放在引用phpThumb.config.php后面:

$my_src = $_GET['src'];
$my_split = split ('[/.-]', $my_src);
$my_cache = $my_split[8].$my_split[9];
$PHPTHUMB_CONFIG['cache_directory'] = dirname(__FILE__).'/'.$my_cache.'/';
//cache_source_directory默认是在cache_directory下的source,一起修改了
$PHPTHUMB_CONFIG['cache_source_directory'] = dirname(__FILE__).'/'.$my_cache.'/source/';

然后别忘了按月手工建立好缓存文件夹,当然也可以用程序创建

Leave a Reply

Google AdWords