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

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

345 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取消用户邮箱必填(注册/修改资料/管理员编辑资料)

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

12 698
帝国cms怎样调用一周内发布的热门榜单信息并按点击排序?
帝国cms怎样调用一周内发布的热门榜单信息并按点击排序?

帝国cms自带的js是可以实现周榜、月榜效果的,但js由于其临时加载的特性,天生...

3 759
帝国cms怎样判断一个栏目有没有子栏目?(父栏目换位判断原创方案)
帝国cms怎样判断一个栏目有没有子栏目?(父栏目换位判断原创方案)

在帝国cms站点的开发过程中,有时候需要判断栏目有没有下级栏目,如果有子栏目,...

3 504
帝国CMS怎样根据栏目关键字调用Tags信息
帝国CMS怎样根据栏目关键字调用Tags信息

在帝国cms开发过程中,我们经常会遇到这样那样的需求。就如栏目信息的展示,有...

1 488
帝国cms怎样判断当前页面为首页?
帝国cms怎样判断当前页面为首页?

在帝国cms开发时,我们经常要给栏目配置高亮效果。栏目高亮判断循环的id等于...

0 567
帝国cms网站加载速度很慢怎么办?
帝国cms网站加载速度很慢怎么办?

很少有帝国cms反馈网站加载速度很慢的问题,如果你的帝国cms站点加载速度很慢...

1 709
帝国cms怎样制作多语言数据包?
帝国cms怎样制作多语言数据包?

许多帝国cms带有多语言版本,如果每个语言都添加一次程序,不仅开发比较麻烦,维...

0 407
帝国cms刷新生成信息内容页时总是出现502怎么办?
帝国cms刷新生成信息内容页时总是出现502怎么办?

一般而言,帝国cms出现502错误的原因在于数据量较为庞大,而模板又不够高效,最终...

1 840
推荐插件
帝国CMS内网用户静态站点文章访客统计插件
帝国CMS内网用户静态站点文章访客统计插件

本插件适用于内网用户,可查看单篇文章访问者ip地址。如果添加访问者ip组,可查...

0 519
帝国cms联想词搜索高级搜索插件下载
帝国cms联想词搜索高级搜索插件下载

帝国CMS自带的搜索功能虽然强大,但也有很强的局限性 -- 必须关键词完全匹配...

0 717
帝国cms在线考试系统模板插件
帝国cms在线考试系统模板插件

一直没看到好用的帝国cms在线考试插件,所以自己开发了一款。在线考试插件用...

0 1242
帝国cms访问统计ip地址链接与封禁插件下载
帝国cms访问统计ip地址链接与封禁插件下载

下载鸥开发了这款帝国cms封禁ip插件,自动记录访问情况,让我们可以更快的识别...

0 959
帝国cms百度AI图像无损放大api接口对接插件
帝国cms百度AI图像无损放大api接口对接插件

通过本插件,可以实现帝国cms网站对接百度云api实现图像无损放大的功能。经过...

0 424
帝国cms智能自动审核按星期几审核指定栏目带推送插件
帝国cms智能自动审核按星期几审核指定栏目带推送插件

采集站的必备资源是自动审核,要做到日收录也离不开定时发布。而本插件的自动...

0 1238
帝国cms百度、必应bing、神马推送增强收录三合一插件
帝国cms百度、必应bing、神马推送增强收录三合一插件

因客户需要一键推送到多平台,下载鸥开发了这款一键推送至百度、必应、神马插...

0 126
帝国cms自动给正文关键词添加tag内链
帝国cms自动给正文关键词添加tag内链

帝国cms有自带的给关键词添加内链功能,但需要手动添加关键词,容易出现疏漏和...

0 778
客服QQ:341553759
扫码咨询 常见问题 >
官方交流群:90432500
点击加入