帝国cms过滤内容里面html字符简单的方法代码

MoBan5源码 | 2019-08-04 10:57:16 |
在帝国cms制作模板的时候有一些地方可能要用到新闻内容里面的数据或者其它一些带有html内容的数据,如何去过滤掉这些内容中的html字符代码呢?

一般用到的地方是列表页调用新闻的正文,但是不要正文里面的Html代码,而帝国本身是没有这个过滤html代码的函数的,所以这个时候就要自己来写一个函数支持了。

将以下代码放到:/e/class/userfun.php (二次开发接口文件) 第二行开始里面就行了。

代码如下:
 
//去除HTML标记
function DELHTML($string){
  $string = preg_replace("'<script[^>]*?>.*?</script>'si", "", $string);//去掉javascript
  $string = preg_replace("'<[\/\!]*?[^<>]*?>'si", "", $string);         //去掉HTML标记
  $string = preg_replace("'([\r\n])[\s]+'", "", $string);               //去掉空白字符
  $string = mb_ereg_replace('^( | )+', '', $string);
  $string = mb_ereg_replace('( | )+$', '', $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;
}
<?=DELHTML($navinfo['你的字段'])?>

在使用的地方调用这个函数就可以正常使用,这样处理起来就非常的简单了。