OldCat's Diary

oldcat

Typecho 获取文章第一张图片 For Markdown

January 2nd, 2016 11:47 AMNo CommentsFiled under: 网站技术Feed for this Entry

转自:http://www.microhu.com/typecho-catch-first-img-markdown.html

今天给大家带来在Markdown文章的第一张图片获取方法。

编写思路

通过Typecho通用过滤器过滤文章内容
用正则匹配得出图片链接
提取第一个图片地址
实现代码

以下代码,放置在主题functions.php中即可。

//缩略图 For Markdown by Mike. 
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)); 
$final = Typecho_Widget::widget('Widget_Abstract_Contents')->filter($rs); 
preg_match_all("/(http:\/\/)[^>]*?.(png|jpg)/i", $final['text'], $thumbUrl); //通过正则式获取图片地址 
$img_src = $thumbUrl[0][0]; //将赋值给img_src 
$img_counter = count($thumbUrl[0]); //一个src地址的计数器 
switch ($img_counter > 0) { 
case $allPics = 1: 
echo $img_src; //当找到一个src地址的时候,输出缩略图 
break; 
default: 
echo "nopic.png"; //没找到(默认情况下),不输出任何内容 
}; 
}

调用方法

< ?php echo img_postthumb($this->cid); ?>  (PS:请去掉<与?php间的空格)

PS: 如果因转义的原因造成代码不可见,下面还有截图。
te01.jpg

TAGS: typecho

Leave a Comment: