您现在的位置:首页 > 前端开发 > 网站模板

帝国CMS长标题截取或简介截取字数并添加省略号

在做帝国cms模板开发的时候经常会遇到要把长标题和或者截取部分正文作为简介的问题,通过esub函数可以解决指定的长度,如:
<?=esub($bqr[&#39;title&#39;],45)?>
<?=esub($bqr[s

在做帝国cms模板开发的时候经常会遇到要把长标题和或者截取部分正文作为简介的问题,通过esub函数可以解决指定的长度,如:
<?=esub($bqr['title'],45)?>
<?=esub($bqr[smalltext],100)?>

如果需要加省略号,可以这样:
<?=esub($bqr[title],36,'...')?>

但这样又出现了一个新问题,无论字数多少都会加省略号,短的标题也会加上省略号。所以还要做一点处理。

<?php
if(strlen($bqr[title]) > 70)
$cutitle = esub($bqr[title],45,'...');
else
$cutitle = $bqr[title];
?>
先判断下标题的长度,如果超过一定的长度就截取并加省略号,否则就直接输出。

这里的strlen($bqr[title]) 为utf-8的字符长度,一个英文字母占一个字符,一个汉字占3个字符。

完整代码如下:
[e:loop={'news',6,18,0,'','newstime DESC'}]
<?php
if(strlen($bqr[title]) > 70)
$cutitle = esub($bqr[title],45,'...');
else
$cutitle = $bqr[title];
?>
<li><a href="<?=$bqsr[titleurl]?>" title="<?=$bqr[title]?>">
       <div class="time"><?=date('d',$bqr[newstime])?><span>/<?=date('m',$bqr[newstime])?>月</span></div>
       <div class="title"><?=$cutitle?></div>
    </a>
</li>
[/e:loop]
 

版权所有
侵权必究

上一篇
帝国CMS栏目路径改变后内容页无法打开的解决方法
下一篇
帝国CMS刷新内容页提示Table '***.表前缀_ecms_news_data_' doesn't exist错误的解决方法