用自定义函数解决帝国cms的简介截取字符时出现html的问题
帝国CMS 在截取文章简介时出现 HTML 标签的问题可以通过自定义函数来解决。具体步骤如下:
步骤 1: 自定义函数 NoHTML()
-
打开
connect.php
文件- 找到
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("/[\r\n][\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; }
- 在文件中添加以下函数:
步骤 2: 修改列表内容模板
-
打开列表内容模板文件
- 找到需要修改的列表内容模板文件,例如
e/template/default/list_content.html
。
- 找到需要修改的列表内容模板文件,例如
-
修改模板代码
- 在模板文件中,使用自定义函数
NoHTML()
截取简介并去除 HTML 标签。 - 修改模板代码如下:
$r['smalltext'] = esub(NoHTML($r['smalltext']), 200, '......'); $listtemp = '<li><strong><a href="[!--titleurl--]">[!--title--]</a></strong><p>[!--smalltext--]</p></li>';
- 在模板文件中,使用自定义函数
解释
-
自定义函数
NoHTML()
- 该函数通过正则表达式去除 HTML 标签、JavaScript 代码以及 HTML 实体。
-
修改模板代码
- 使用
NoHTML()
函数去除smalltext
字段中的 HTML 标签。 esub()
函数用于截取字符串并添加省略号。
- 使用