1、 php实现根据url自动生成缩略图的方法本文实例讲述了php实现根据url自动生成缩略图的方法,是非常实用的功能。分享给大家供大家参考。具体方法如下:原理 :设置apache rewrite ,当图片不存在时,调用php创建图片。例如:原图路径为:缩略图路径为:当访问 时,如图片存在,则显示图片。否则,调用createthumb.php生成图片。目录结构 如下:www/picthumb.class.phpwww/thumbconfig.phpwww/upload/news/2013/07/21/1.jpgwww/upload/article/2013/07/21/2.jpgwww/suplo
2、ad/.htaccesswww/supload/watermark.pngwww/supload/createthumb.php指向 www目录需要开启apache rewrite:sudo a2enmod rewrite.htaccess文件 如下:ifmodule mod_rewrite.crewriteengine on# -s (is regular file, with size)# -l (is symbolic link)# -d (is directory)# ornext|or (or next condition)# nocase|nc (no case)# last|l
3、(last rule)rewritecond %request_filename -s orrewritecond %request_filename -lpath./picthumb.class.php); / include picthumb.class.phprequire(www_path./thumbconfig.php); / include thumbconfig.php$logfile = www_path./createthumb.log; / 日志文件$source_path = www_path./upload/; / 原路径$dest_path = www_path./
4、supload/; / 目标路径$path = isset($_getpath)? $_getpath : ; / 访问的图片url/ 检查pathif(!$path)exit();/ 获取图片uri$relative_url = str_replace($dest_path, , www_path.$path);/ 获取type$type = substr($relative_url, 0, strpos($relative_url, /);/ 获取config$config = isset($thumb_config$type)? $thumb_config$type : ;/ 检查con
5、figif(!$config | !isset($configfromdir)exit();/ 原图文件$source = str_replace(/.$type./, /.$configfromdir./, $source_path.$relative_url);/ 目标文件$dest = $dest_path.$relative_url;/ 创建缩略图$obj = new picthumb($logfile);$obj-set_config($config);if($obj-create_thumb($source, $dest)ob_clean();header(content-type
6、:.mime_content_type($dest);exit(file_get_contents($dest);?thumbconfig.php文件如下:?php$thumb_config = array(news = array(fromdir = news, / 来源目录type = fit,width = 100,height = 100,bgcolor = #ff0000),news_1 = array(fromdir = news,type = fit,width = 200,height = 200,bgcolor = #ffff00),article = array(fromdir = article,type = crop,width = 250,height = 250,watermark = www_path./supload/watermark.png);?访问这三个路径后会按config自动生成缩略图希望本文所述对大家的php程序设计有所帮助。