Prinzip: Stellen Sie Apache Rewrite ein. Wenn das Bild nicht vorhanden ist, rufen Sie PHP auf, um das Bild zu erstellen.
Zum Beispiel
Der ursprüngliche Bildpfad lautet: http://localhost/upload/news/2013/07/21/1.jpg
Der Miniaturbildpfad lautet: http://localhost/supload/news /2013 /07/21/1.jpg
Wenn Sie auf http://localhost/supload/news/2013/07/21/1.jpg zugreifen und das Bild vorhanden ist, wird das Bild angezeigt. Andernfalls rufen Sie createthumb.php auf, um das Bild zu generieren.
Die Verzeichnisstruktur ist wie folgt:
www/PicThumb.class.php
www/ThumbConfig.php
www/upload/news/2013/07/21/1.jpg
www /upload/article/2013/07/21/2.jpg
www/supload/.htaccess
www/supload/watermark.png
www/supload/createthumb.php
http ://localhost/ verweist auf das www-Verzeichnis
Verwendung von PicThumb.class.php, siehe hier
Apache-Rewrite muss aktiviert werden
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, 0, 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' ) ); ?>
In diesem Artikel wird erläutert, wie Sie automatisch Miniaturansichten basierend auf der URL über PHP generieren Inhalt, achten Sie bitte auf PHP Chinese Net.
Verwandte Empfehlungen:
Einführung in die Methode zur Verwendung des PHP-Output_Buffering-Cache
So implementieren Sie die BigPipe-Chunked-Ausgabe über PHP
So verwenden Sie fsockopen GET/POST zum Senden von Formularen und Hochladen von Dateien über PHP
Das obige ist der detaillierte Inhalt vonSo generieren Sie automatisch Miniaturansichten basierend auf der URL über PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!