TimThumb是一个非常神奇的第三方小文件,它可以任意裁剪图片大小。这一切都不需你手动操作,有了它,你可以为你博客文章缩略图进行定义裁剪,不用加载原本的大而笨重的高清图片,只需要加载裁剪后的缩略图,好处最大就在于减少页面加载时间喽!
修订版本:1.1
附件:timthumb.zip
使用方法
首先,想要使用timthumb,需要先确认主机是否支持GD库(一般主机都支持)下载TimThumb.php并将其上传到你的空间(我是上传在主题目录中的),然后在和timthumb.php同一个目录下,创建一个cache文件夹,如果你是linux主机,需要为cache文件夹提供写权限,我设置的权限为777。
下面的在需要使用的地方贴上下面的代码就可以了
<img src="http://timthumb所在目录/timthumb.php?src=图片地址&h=定义高度&w=定义宽度&zc=1"/>
那么,如何使用php函数来获取图片地址呢?下面我来分别介绍在WP和TE两个平台下获取第一张图片地址的方法。
Typecho下获取第一张图片地址
将下列代码添加至主题functions.php文件中
function img_postthumb($cid) { $db = Typecho_Db::get(); $rs = $db->fetchRow($db->select('table.contents.text') ->from('table.contents') ->where('table.contents.cid=?', $cid) ->order('table.contents.cid', Typecho_Db::SORT_ASC) ->limit(1)); preg_match_all("/\<img.*?src\=\"(.*?)\"[^>]*>/i", $rs['text'], $thumbUrl); //通过正则式获取图片地址 $img_src = $thumbUrl[1][0]; //将赋值给img_src $img_counter = count($thumbUrl[0]); //一个src地址的计数器 switch ($img_counter > 0) { case $allPics = 1: echo $img_src; //当找到一个src地址的时候,输出缩略图 break; default: echo ""; //没找到(默认情况下),不输出任何内容 }; }
输出时,使用:
<?php echo img_postthumb($this->cid); ?>
这样,完美的输出应为这样:
<img src="http://timthumb所在目录/timthumb.php?src=<?php echo img_postthumb($this->cid); ?>&h=定义高度&w=定义宽度&zc=1"/>
Wordpress下获取第一张图片地址
将下列代码添加至主题functions.php文件中
function catch_that_image() { global $post, $posts; $first_img = ''; ob_start(); ob_end_clean(); $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches); $first_img = $matches [1] [0]; if(empty($first_img)){ //Defines a default image $first_img = "/images/default.jpg"; } return $first_img; }
输出时,使用:
<?php echo catch_that_image() ?>
这样,完美的输出应为这样:
<img src="http://timthumb所在目录/timthumb.php?src=<?php echo catch_that_image() ?>&h=定义高度&w=定义宽度&zc=1"/>
评论 (0)