下载鸥 > 网站下载 > 开发教程 > 帝国CMS

帝国cms判断多图信息并自动展示不同模板(提取正文图片)

264 2022-05-25 22:03:22

收藏
信息网站大多兼容无图、单图、多图的信息展示,信息展现更加错落有致,视觉体验也更好。但帝国cms默认是不支持识别与匹配的,此时可以灵动运用php。
 

灵动标签多图展示

<?
$sql=$empire->query("select * from {$dbtbpre}ecms_news order by id desc limit 30");
while($bqr=$empire->fetch($sql)){
    $bqsr=sys_ReturnEcmsLoopStext($bqr);
    $bqno++;


$fr=$empire->fetch1("select newstext,infotags from {$dbtbpre}ecms_news_data_{$bqr[stb]} where id='$bqr[id]'");
$neirong=$fr['newstext'];
$imgcount=substr_count($neirong,"<img");

$neirong=preg_replace("@<iframe(.*?)</iframe>@is","",$neirong); 
$neirong=str_replace("$public_r[newsurl]","/","$neirong");
$neirong=stripslashes($neirong);

$match=='';
$pattern='/<[img|IMG].*?src=\"(.*?(?:[\.gif|\.jpg|\.png]))\".*?>/';
preg_match_all($pattern,$neirong,$match); 

if($match[1][0]==''){
$pattern='/<[img|IMG].*?src=\\\\"(.*?(?:[\.gif|\.jpg|\.png]))\\\\".*?>/';
preg_match_all($pattern,$neirong,$match); 
}

$cl=$empire->fetch1("select classname from {$dbtbpre}enewsclass where classid='$bqr[classid]'");
$classname=$cl['classname'];

$infotags=$fr['infotags'];
$r_tag=explode(",",$infotags);
for($i=0;$i<count($r_tag);$i++){
  if($r_tag[$i]){
    $tagslink=$public_r[newsurl].'e/tags/?tagname='.$r_tag[$i];
    $tags.="<a href='$tagslink' target='_blank' rel='tag'>".$r_tag[$i]."</a>";
  }
}

$tmpimg4='';
$tmpimg3='';
$tmpimg1='';
?>

<?
if($imgcount>3){
  for($j=0;$j<4;$j++){
    $tmpimg4.=' <a href="'.$bqr[titleurl].'"><img src="'.$public_r[newsurl].'e/extend/timthumb.php?src='.$match[1][$j].'&amp;h=120&amp;w=180&amp;zc=1" alt="'.$bqr[title].'" /></a> ';
  }
?>
  <li class="listpost_li">
    <h2><a href="<?=$bqr[titleurl]?>" title="<?=$bqr[title]?>" target="_blank">444<?=$bqr[title]?></a></h2>
    <div class="moreimg"> <?=$tmpimg4?> </div>
    <div class="moreinfo"> <span class="on"><a href="<?=$bqsr[classurl]?>"><?=$classname?></a></span> <span class="on"><?=date('Y-m-d',$bqr[newstime])?></span> <span>阅读(<?=$bqr[onclick]?>)</span> <span><?=$tags?></span> </div>
  </li>
<?}?>

<?
if($imgcount==3){
  for($j=0;$j<3;$j++){
    $tmpimg3.=' <a href="'.$bqr[titleurl].'"><img src="'.$public_r[newsurl].'e/extend/timthumb.php?src='.$match[1][$j].'&amp;h=120&amp;w=180&amp;zc=1" alt="'.$bqr[title].'" /></a> ';
  }
?>
  <li class="listpost_li">
    <h2><a href="<?=$bqr[titleurl]?>" title="<?=$bqr[title]?>" target="_blank">333<?=$bqr[title]?></a></h2>
    <div class="moreimg"> <?=$tmpimg3?> <a href="<?=$bqr[titleurl]?>" class="picture-more">查看详情 ></a></div>
    <div class="moreinfo"> <span class="on"><a href="<?=$bqsr[classurl]?>"><?=$classname?></a></span> <span class="on"><?=date('Y-m-d',$bqr[newstime])?></span> <span>阅读(<?=$bqr[onclick]?>)</span> <span><?=$tags?></span> </div>
  </li>
<?}?>

<?
if($imgcount<3&&$imgcount>0){
  for($j=0;$j<1;$j++){
  $tmpimg1.=' <a href="'.$bqr[titleurl].'"><img src="'.$public_r[newsurl].'e/extend/timthumb.php?src='.$match[1][$j].'&amp;h=120&amp;w=180&amp;zc=1" alt="'.$bqr[title].'" /></a> ';
  }
?>
  <li class="listpost_li">
    <div class="img"> <?=$tmpimg1?> </div>
    <div class="info">
      <h2><a href="<?=$bqr[titleurl]?>" target="_blank">222<?=$bqr[title]?></a></h2>
      <div class="moreinfo"> <span class="on"><a href="<?=$bqsr[classurl]?>"><?=$classname?></a></span> <span class="on"><?=date('Y-m-d',$bqr[newstime])?></span> <span>阅读(<?=$bqr[onclick]?>)</span> <span><?=$tags?></span> </div>
    </div>
  </li>
<?}?>

<?
if($imgcount<1){
?>
  <li class="listpost_li">
    <div class="info" style="margin-left: 0px;">
      <h2><a href="<?=$bqr[titleurl]?>" target="_blank">000<?=$bqr[title]?></a></h2>
      <div class="moreinfo"> <span class="on"><a href="<?=$bqsr[classurl]?>"><?=$classname?></a></span> <span class="on"><?=date('Y-m-d',$bqr[newstime])?></span> <span>阅读(<?=$bqr[onclick]?>)</span> <span><?=$tags?></span> </div>
    </div>
  </li>
<?}?>

<?}?>
 

栏目页list.var多图展示

$fr=$empire->fetch1("select newstext,infotags from {$dbtbpre}ecms_news_data_{$r[stb]} where id='$r[id]'");
$neirong=$fr['newstext'];
$imgcount=substr_count($neirong,"<img");

$neirong=preg_replace("@<iframe(.*?)</iframe>@is","",$neirong); 
$neirong=str_replace("$public_r[newsurl]","/","$neirong");

$match=='';
$pattern='/<[img|IMG].*?src="(.*?(?:[\.gif|\.jpg|\.png]))".*?[\/]?>/';
preg_match_all($pattern,$neirong,$match); 

if($match[1][0]==''){
$pattern='/<[img|IMG].*?src=\\\\"(.*?(?:[\.gif|\.jpg|\.png]))\\\\".*?[\/]?>/';
preg_match_all($pattern,$neirong,$match); 
}

$cl=$empire->fetch1("select classname from {$dbtbpre}enewsclass where classid='$r[classid]'");
$classname=$cl['classname'];

$infotags=$fr['infotags'];
$r_tag=explode(",",$infotags);
for($i=0;$i<count($r_tag);$i++){
	if($r_tag[$i]){
		$tagslink=$public_r[newsurl]."e/tags/?tagname=".$r_tag[$i];
		$tags.="<a href='$tagslink' target='_blank' rel='tag'>".$r_tag[$i]."</a>";
	}
}
if($imgcount>3){
for($j=0;$j<4;$j++){
$tmpimg4.=' <a href="[!--titleurl--]"><img src="'.$public_r[newsurl].'e/extend/timthumb.php?src='.$match[1][$j].'&amp;h=120&amp;w=180&amp;zc=1" alt="[!--oldtitle--]" /></a> ';
}
$listtemp='<li class="listpost_li">
    <h2><a href="[!--titleurl--]" title="[!--oldtitle--]" target="_blank">[!--title--]</a></h2>
    <div class="moreimg"> '.$tmpimg4.' </div>
    <div class="moreinfo"> <span class="on"><a href="[!--this.classlink--]">'.$classname.'</a></span> <span class="on">[!--newstime--]</span> <span>阅读([!--onclick--])</span> <span>'.$tags.'</span> </div>
  </li>';
}
if($imgcount==3){
for($j=0;$j<3;$j++){
$tmpimg3.=' <a href="[!--titleurl--]"><img src="'.$public_r[newsurl].'e/extend/timthumb.php?src='.$match[1][$j].'&amp;h=120&amp;w=180&amp;zc=1" alt="[!--oldtitle--]" /></a> ';
}
$listtemp='<li class="listpost_li">
    <h2><a href="[!--titleurl--]" title="[!--oldtitle--]" target="_blank">[!--title--]</a></h2>
    <div class="moreimg"> '.$tmpimg3.' <a href="[!--titleurl--]" class="picture-more">查看详情 ></a></div>
    <div class="moreinfo"> <span class="on"><a href="[!--this.classlink--]">'.$classname.'</a></span> <span class="on">[!--newstime--]</span> <span>阅读([!--onclick--])</span> <span>'.$tags.'</span> </div>
  </li>';
}
if($imgcount<3){
for($j=0;$j<1;$j++){
$tmpimg1.=' <a href="[!--titleurl--]"><img src="'.$public_r[newsurl].'e/extend/timthumb.php?src='.$match[1][$j].'&amp;h=120&amp;w=180&amp;zc=1" alt="[!--oldtitle--]" /></a> ';
}
$listtemp='<li class="listpost_li">
    <div class="img"> '.$tmpimg1.' </div>
    <div class="info">
      <h2><a href="[!--titleurl--]" target="_blank">[!--title--]</a></h2>
      <div class="moreinfo"> <span class="on"><a href="[!--this.classlink--]">'.$classname.'</a></span> <span class="on">[!--newstime--]</span> <span>阅读([!--onclick--])</span> <span>'.$tags.'</span> </div>
    </div>
  </li>';
}
if($imgcount<1){
$listtemp='<li class="listpost_li">
    <div class="info" style="margin-left: 0px;">
      <h2><a href="[!--titleurl--]" target="_blank">[!--title--]</a></h2>
      <div class="moreinfo"> <span class="on"><a href="[!--this.classlink--]">'.$classname.'</a></span> <span class="on">[!--newstime--]</span> <span>阅读([!--onclick--])</span> <span>'.$tags.'</span> </div>
    </div>
  </li>';
}

这样,就实现了多图展示的功能。
 

附注

本方案较为冗杂,且存在较多的重复代码,仅供参考。

本文地址:https://xzo.com.cn/develop/empire/1088.html

有帮助,很赞!

信息来源:下载鸥
导出教程 下载word版教程
发表评论 共有条评论
关于帝国CMS


帝国cms是一款功能极为强大的cms程序,性能强悍、安全性高,可轻松支持10万数据,高级开发人员可制作出能容纳千万数据量的网站,是国内最出色的开源cms程序之一,推荐企业用户使用

当前最新版本为7.5,8.0版本即将上线,新版本的核心优化点在于多终端的适配。

推荐帝国CMS开发教程
帝国CMS怎样批量取消文章审核
帝国CMS怎样批量取消文章审核

使用帝国CMS的朋友可能有这样的需求:由于信息发生变化,或是数据出了问题,想要...

7 474
帝国cms怎样展示管理员文章总数、点赞总数、上次发布时间
帝国cms怎样展示管理员文章总数、点赞总数、上次发布时间

其实博客与企业站是很像的,只是多了一些功能如博主信息展示、点赞数、评论数...

9 909
帝国cms取消用户邮箱必填(注册/修改资料/管理员编辑资料)
帝国cms取消用户邮箱必填(注册/修改资料/管理员编辑资料)

网上关于取消会员邮箱必填的教程很多,但大都不完整。今天放出完整版本,确保全...

12 608
帝国CMS调用新浪iplookup接口实现不同ip跳转不同城市分站
帝国CMS调用新浪iplookup接口实现不同ip跳转不同城市分站

让不同城市的访客在访问页面时跳转到对应的城市站才能带来更好的体验,而新浪...

1 298
帝国CMS内容页怎样用js实现点击改变字号大小?
帝国CMS内容页怎样用js实现点击改变字号大小?

许多帝国cms开发的小说站点、文字资料站点要考虑目标用户的不同而设置不同...

1 364
帝国cms无法加载360站长平台的js推送代码怎么办?
帝国cms无法加载360站长平台的js推送代码怎么办?

如果直接在帝国cms模板中插入360推送代码,会发现在插入360推送代码后,无法正...

7 504
帝国cms动态页、静态页、伪静态页有什么区别?
帝国cms动态页、静态页、伪静态页有什么区别?

我们知道,帝国cms既可以做动态页,也可以做静态页,还可以做伪静态页。那么,他们...

0 313
帝国cms自动更新相关tag的fclast上次修改时间字段
帝国cms自动更新相关tag的fclast上次修改时间字段

每次更新发布文章tag信息后,tag数据表的时间会自动同步,但tag信息表的修改时...

0 312
随机帝国CMS开发教程
帝国cms删除栏目出错,提示select newstext from **_ecms_news where classid=22
帝国cms删除栏目出错,提示select newstext from **_ecms_news where classid=22

帝国cms删除栏目出错,提示select newstext from **_ecms_news where classid...

0 357
帝国cms6.6找回密码插件式(适用于不知道数据库连接地址的情况)
帝国cms6.6找回密码插件式(适用于不知道数据库连接地址的情况)

近日有客户找到鸥哥协助找回密码,对方使用的是旧版帝国cms6.6 ,密码找回本来...

0 343
帝国cms提示信息函数printerror2怎么用?
帝国cms提示信息函数printerror2怎么用?

帝国cms提示信息函数printerror2,可用于直接提示信息,且调用方式简单。...

0 212
填坑笔记:帝国cms复选字段报错
填坑笔记:帝国cms复选字段报错

帝国cms复选框是一个比较常见的功能,我们可以通过使用复选款实现许多复杂的...

0 457
帝国cms怎样修改系统模型ID
帝国cms怎样修改系统模型ID

帝国cms默认是不允许修改系统模型ID的,因为一旦修改牵扯较大。那么,如果一定...

0 559
帝国cms 使用download.js下载视频文件
帝国cms 使用download.js下载视频文件

视频文件默认会被pc浏览器直接打开,此时download属性也同样无效。那么,要怎样...

0 349
帝国cms提取正文里的3张图片做缩略图
帝国cms提取正文里的3张图片做缩略图

帝国cms怎样提取正文里的3张图片做缩略图呢?...

0 519
一个双色球开奖号码是否命中的简单php判断代码
一个双色球开奖号码是否命中的简单php判断代码

分享一个帝国cms双色球开奖号码与开机号码是否命中的代码。一方面判断中了...

1 249
客服QQ:341553759
点击咨询 常见问题 >
官方交流群:90432500
点击加入