Emlog Pro最新根据文章gid获取文章封面函数(无封面自动获取文章第一张图片)

  • A+
所属分类:其他教程

教程介绍

自从更新Emlog Pro程序之后,使用的是Markdown编辑器,因为此编辑器的特殊性,数据库存储的是特定语法,不是html代码,所以之前的获取文章封面的函数都不可用了。

本次给大家带来最新获取文章封面的函数,此函数需要根据文章的gid字段获取文章封面 如果文章中的封面字段为空,则自动根据两条正则表达式获取文章中的第一张图片

为什么是两条正则表达式呢?

当有需要自定义img标签时,图片一样会获取。

使用教程

将函数完全复制到模板文件中的module.php文件中任意位置即可,很多模板的代码是很乱的,填写时请注意,不要填写错误。

调用方法:

//可在循环中调用或单独调用都可以 <?= getBlogCover(你的文章id); ?>

函数代码

/**  * 获取:指定文章的封面图  * @param $gid [文章id]  * @return $imgUrl 输出图片地址,无封面展示默认图  */ function getBlogCover($gid = null){     //缺省默认图,自行更改地址     $imgUrl = TEMPLATE_URL.'static/images/default/noLoad.svg';     if(!empty($gid)){         $db = Database::getInstance();         $sql = "SELECT content,cover FROM ".DB_PREFIX."blog WHERE gid='$gid'";         $data = $db->once_fetch_array($sql);         if(!empty($data['cover'])){             $imgUrl = ltrim($data['cover'], '.');         }else{             $regExp_1 = '|![(.*)]((.+))|i';             $regExp_2 = '|<img[^>]+src="([^>"]+)"?[^>]*>|is';             preg_match($regExp_1, $data['content'], $regExp_1_Arr);             preg_match($regExp_2, $data['content'], $regExp_2_Arr);             if(isset($regExp_1_Arr[2]) && isset($regExp_2_Arr[1])){                 $place_1 = strpos($data['content'], $regExp_1_Arr[2]);                 $place_2 = strpos($data['content'], $regExp_2_Arr[1]);                 if($place_1 < $place_2){                     $imgUrl = @$regExp_1_Arr[2];                 }                 $imgUrl = @$regExp_2_Arr[1];             }elseif(isset($regExp_1_Arr[2])){                 $imgUrl = @$regExp_1_Arr[2];             }elseif(isset($regExp_2_Arr[1])){                 $imgUrl = @$regExp_2_Arr[1];             }         }     }     return $imgUrl; }
  • 我的微信公众号
  • 扫一扫关注
  • weinxin
  • 我的新浪微博号
  • 扫一扫关注
  • weinxin
小辉博客

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: