帝国CMS过滤模板中输出的html标签和html实体函数及使用方法
帝国cms前端模板由于安全限制,会对灵动标签、列表页等输出的数据进行转义,例如网站列表页,会出现下方的情况。里边出现了“或者其他HTML实体字符,影响浏览体验。
我们构造一个过滤函数,将其放在“/e/class/connect.php”或者“/e/class/userfun.php”里面,代码如下:
//去除帝国cms模板中的HTML实体
function Dmgf_FormatHTML($string) {
$string = preg_replace("'<script[^>]*?>.*?</script>'si", "", $string); //去掉javascript
$string = preg_replace("'<[/!]*?[^<>]*?>'si", "", $string); //去掉HTML标记
$string = preg_replace("'([rn])[s]+'", "", $string); //去掉空白字符
$string = mb_ereg_replace('^( | )+', '', $string);
$string = mb_ereg_replace('( | )+$', '', $string);
$string = preg_replace("'&(quot|#34);'i", "", $string);
$string = preg_replace("'&(rdquo);'i", "", $string);
$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模板中输出数据的html字符了。:
<?=Dmgf_FormatHTML($navinfo['smalltext'])?>