Typecho获取文章缩略图

function img_postthumb($thumbThis) {
$db = Typecho_Db::get();
$rs = $db->fetchRow($db->select('table.contents.text')
    ->from('table.contents')
    ->where('table.contents.cid=?', $thumbThis->cid)
    ->order('table.contents.cid', Typecho_Db::SORT_ASC)
    ->limit(1));
preg_match_all('/\<img.*?src\=\"(.*?)\"[^>]*>/i', $rs['text'], $thumbUrl);  //通过正则式获取图片地址
preg_match_all('/\!\[.*?\]\((http(s)?:\/\/.*?(jpg|png))/i', $rs['text'], $patternMD);  //通过正则式获取图片地址
preg_match_all('/\[.*?\]:\s*(http(s)?:\/\/.*?(jpg|png))/i', $rs['text'], $patternMDfoot);  //通过正则式获取图片地址
if(count($thumbUrl[0])>0){
    return $thumbUrl[1][0];  //当找到一个src地址的时候,输出缩略图
}else if(count($patternMD[0])>0){
    return $patternMD[1][0];
}else if(count($patternMDfoot[0])>0){
    return $patternMDfoot[1][0];
}else{
    //在主题根目录下的 /img 目录下放随机图片 thumb_开头
    //如:thumb_1.jpg
    return $thumbThis->widget('Widget_Options')->themeUrl."/img/thumb_".rand(1,5).".jpg";
}

简单记录一下,有使用到
<?php echo img_postthumb($this); ?>

bluexx

好好学习,天天向上

Responses