«

EMLOG调用附件第一张图片和正文第一张图片的办法

时间:2019-9-21 11:30     作者:博客志     分类: emlog教程


很多EMLOG模板开发者在制作主题的时候多少都需要在首页图片展示或图文形式,那么如何实现这些效果呢,现在就来为大家分享一下EMLOG调用附件第一张图片和正文第一张图片的办法。

一、EMLOG调用附件第一张图片

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

<?php //获取文章缩略图,先是自定义指定,然后是查找附件图片,最后是随机图片
function sheli_fjimg($logid) {
    $db = MySql::getInstance();
    $thum_pic = EMLOG_ROOT.'/thumpic/'.$logid.'.jpg';
    if (is_file($thum_pic)) {
    $thum_url = BLOG_URL.'thumpic/'.$logid.'.jpg';
}
else {
    $sqlimg = "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";
    //    die($sql);
    $img = $db->query($sqlimg);
    while($roww = $db->fetch_array($img)) {
    $thum_url=BLOG_URL.substr($roww['filepath'],3,strlen($roww['filepath']));
}
if (empty($thum_url)) {
    srand((double)microtime()*1000000);
    $randval = rand(0,9);
    $thum_url = BLOG_URL.'content/templates/default/images/'.$randval.'.jpg';
}//随机图片路径}
echo $thum_url;} ?>

2、在需要的位置添加如下调用代码即可

<img src="<?php sheli_fjimg($value['logid']); ?>" >

二、EMLOG读取正文第一张图片

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

<?php
//获取文章中第一张图片,如果没有就调用随机图片
function sheli_zwimg($str) {
    preg_match_all("/\<img.*?src\=\"(.*?)\"[^>]*>/i",$str,$match);
    if(!empty($match[1])) {
    echo $match[1][0];
}
else {
    echo TEMPLATE_URL . 'images/shuyong_net_wzimg/'.rand(1,20).'.jpg';
    //随机图片路径及图片命名1.jpg……20.jpg
}
}?>

2、当然,也可以使用如下这段代码

<?php
$imgsrc = preg_match_all("|<img[^>]+src=\"([^>\"]+)\"?[^>]*>|is",$value['content'],$img);$imgsrc = !empty($img[1]) ? $img[1][0]:'';
?>
<?php if($imgsrc):?>
<img src="<?php echo $imgsrc;?>">
<?php else:?>
<img src="<?php echo TEMPLATE_URL;?>images/news.jpg" alt="暂无图片" />
<?php endif;?>

3、在需要的位置添加如下调用代码即可

<img src="<?php sheli_zwimg($value['content']); ?>"

三、注意事项

1、本教程第一种方法就是直接判断附件的类型,并获取第一张图片的信息,如果没有图片附件,则显示默认图片或随机图片。

2、本教程第二种方法是直接从正文代码——包括注释代码——中获取第一张图片的信息,如果正文中没有图片,则显示默认图片或者随机图片。

2、本教程第二种方法第2步,是直接调用正文第一张图片,没有图片则自定义,也可以空白