cms/ target=_blank class=infotextkey>帝国cms简介截取字符时出现html,怎么解决呢?
可以通过自定义函数来实现的。
首先,在 e/class/connect.php 文件中加入一个自定义函数 比如 NoHTML() 。
复制代码 代码示例:
//去除HTML标记
function NoHTML($string){
$string = preg_replace("'<script[^>]*?>.*?</script>'si", "", $string);//去掉javascript
$string = preg_replace("'<[/!]*?[^<>]*?>'si", "", $string); //去掉HTML标记
$string = preg_replace("'([rn])[s]+'", "", $string); //去掉空白字符
$string = preg_replace("'&(quot|#34);'i", "", $string); //替换HTML实体
$string = preg_replace("'&(amp|#38);'i", "", $string);
$string = preg_replace("'&(lt|#60);'i", "", $string);
$string = preg_replace("'&(gt|#62);'i", "", $string);
$string = preg_replace("'&(nbsp|#160);'i", "", $string);
return $string;
}
然后,修改帝国cms列表内容模板:
复制代码 代码示例:
$r[smalltext]=esub(NoHTML($r[smalltext]),200,'......');
$listtemp='<li><strong><a href="[!--titleurl--]">[!--title--]</a></strong><p>[!--smalltext--]</p></li>';
如此,帝国cms简介截取字符时便不会出现html代码了,因为已过滤掉了。