Joomla的字符截断/字数限制功能

Joomla的API中,提供了字符截断的功能,大家有兴趣的可以查看Joomla官方API文档的说明:

http://api.joomla.org/cms-3/classes/JHtmlString.html

我在这里也大概介绍一下

一、abridge 内部截断

用法如下

<?php echo JHtml::_('string.abridge',$item->introtext,20); ?>

其中$item->introtext是你要处理的文本,$intro是你要限制省略号前的字数的值,$length是你要限制所有的字符,包括中间的省略号(占三字符)。效果就是如果字符串长度超出定义值,则内部截断。例如:

<?php 
$ycway = '欢迎加入Joomlafox,我们一起学习交流吧。';
echo JHtml::_('string.abridge',$ycway,$length = 18,$intro =10);
?>

输出的结果是:

欢迎加入Joomla...习交流吧。

这里一个汉字算一个字符,一个英文字母算一个字符,标点符号也算一个字符。

二、truncate 字符截断

这个是更为常用的方法,例如这样

<?php 
$ycway = '欢迎加入Joomlafox,我们一起学习交流吧。';
echo JHtml::_('string.truncate',$ycway,$length=10, $noSplit = false, $allowHtml = false);
?>

其中$length是你要限制的字符数,效果就是如果字符串长度超出定义值,则在后面添加省略号(省略号不计入限制字数)。

输出的结果是:

欢迎加入Joomla...

这里依然是汉字字母都占一个字符,当使用的是英文环境,可以使用$noSplit = true实现以单词为限制数量,$allowHtml是控制是否包含Html标签。

这里介绍的方法,只适用Joomla默认的文章组件和模块,如果你需要了解其他扩展,例如K2的字符截断,可以浏览《k2的字符截断/字数限制功能》。