目录

今天给大家带来在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); ?>  

转载自:http://www.microhu.com/before-blog-closed.html