PHP编程:php实现根据url自动生成缩略图的方法
《php实现根据url自动生成缩略图的方法》要点: 本篇章节讲解php实现根据url自动生成缩略图的办法,是非常实用的功能.分享给大家供大家参考.具体办法如下:PHP应用 原理:设置apache rewrite,当图片不存在时,调用php创建图片. 例如: 原图路径为:http://localhost/upload/news/2013/07/21/1.jpg 当拜访 http://localhost/supload/news/2013/07/21/1.jpg 时,如图片存在,则显示图片.否则,调用createthumb.php生成图片. 目录结构如下: www/PicThumb.class.php http://localhost/ 指向 www目录 PicThumb.class.php 用法请查看这里: 需要开启apache rewrite: sudo a2enmod rewrite .htaccess文件如下: <IfModule mod_rewrite.c> RewriteEngine 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' (last rule) RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ createthumb.php?path=%{REQUEST_URI} [NC,L] </IfModule> createthumb.php文件如下: <?php define('WWW_PATH',dirname(dirname(__FILE__))); // 站点www目录 require(WWW_PATH.'/PicThumb.class.php'); // include PicThumb.class.php require(WWW_PATH.'/ThumbConfig.php'); // include ThumbConfig.php $logfile = WWW_PATH.'/createthumb.log'; // 日志文件 $source_path = WWW_PATH.'/upload/'; // 原路径 $dest_path = WWW_PATH.'/supload/'; // 目标路径 $path = isset($_GET['path'])? $_GET['path'] : ''; // 拜访的图片URL // 检查path if(!$path){ exit(); } // 获取图片URI $relative_url = str_replace($dest_path,'',WWW_PATH.$path); // 获取type $type = substr($relative_url,strpos($relative_url,'/')); // 获取config $config = isset($thumb_config[$type])? $thumb_config[$type] : ''; // 检查config if(!$config || !isset($config['fromdir'])){ exit(); } // 原图文件 $source = str_replace('/'.$type.'/','/'.$config['fromdir'].'/',$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:'.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程序设计有所赞助. 欢迎参与《php实现根据url自动生成缩略图的方法》讨论,分享您的想法,编程之家 52php.cn为您提供专业教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |