«

EMLOG判断正文、附件和随机图片并实现缩略图调用

时间:2019-9-29 16:10     作者:博客志     分类: emlog教程


在列表页调用缩略图是模板开发者常见的做法之一,然而对于纯文字博主来说并不愿意在文章内插入图片,因此我们就需要对文章进行判断,如果文章包含图片则调用正文第一张图片,没有则调用附件图片,如果前两者都没有则调用随机图片,现在就来为大家分享一下EMLOG判断正文、附件和随机图片并实现缩略图调用的方法。

一、操作步骤

1、打开模板文件module.php,在合适的位置添加如下代码

<?php
//全局匹配正文中的图片并存入imgsrc中
function img_zw($content){preg_match_all("|<img[^>]+src=\"([^>\"]+)\"?[^>]*>|is", $content, $img);$imgsrc = !empty($img[1]) ? $img[1][0] : '';if($imgsrc):return $imgsrc;endif;}
//Custom: 获取附件第一张图片
function img_fj($logid){$db = MySql::getInstance();$sql = "SELECT * FROM ".DB_PREFIX."attachment WHERE blogid=".$logid." AND (`filepath` LIKE '%jpg' OR `filepath` LIKE '%gif' OR `filepath` LIKE '%png') ORDER BY `aid` ASC LIMIT 0,1";$imgs = $db->query($sql);$img_path = "";while($row = $db->fetch_array($imgs)){$img_path .= BLOG_URL.substr($row['filepath'],3,strlen($row['filepath']));}
return $img_path;}?>

2、打开模板文件log_list.php,在foreach循环中添加如下代码

<?php if(img_zw($value['content'])){$imgurl = img_zw($value['content']);
}elseif(img_fj($value['logid'])){$imgurl = img_fj($value['logid']);
}else{$imgurl = TEMPLATE_URL.'images/'.rand(1,5).'.jpg';}
?><p><img src="<?php echo $imgurl;?>" /></p>

二、原理解析

通过PHP对文章图片进行判断,如果文章里存在图片则调用正文第一张图片,没有则调用附件图片,如果前两者都没有则调用随机图片代码

三、注意事项

本教程调用随机图片的话,需要在模板文件夹下新建images文件夹,然后在里面加入名称为1-5、格式为jpg的图片,否则会报错