用自定义函数解决帝国cms的简介截取字符时出现html的问题

wdzsjl 1个月前 (10-10) 阅读数 18 #常见报错代码

帝国CMS 在截取文章简介时出现 HTML 标签的问题可以通过自定义函数来解决。具体步骤如下:

步骤 1: 自定义函数 NoHTML()

  1. 打开 connect.php 文件

    • 找到 e/class/connect.php 文件并打开。
  2. 添加自定义函数 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: 修改列表内容模板

  1. 打开列表内容模板文件

    • 找到需要修改的列表内容模板文件,例如 e/template/default/list_content.html
  2. 修改模板代码

    • 在模板文件中,使用自定义函数 NoHTML() 截取简介并去除 HTML 标签。
    • 修改模板代码如下:
      $r['smalltext'] = esub(NoHTML($r['smalltext']), 200, '......'); $listtemp = '<li><strong><a href="[!--titleurl--]">[!--title--]</a></strong><p>[!--smalltext--]</p></li>';

解释

  1. 自定义函数 NoHTML()

    • 该函数通过正则表达式去除 HTML 标签、JavaScript 代码以及 HTML 实体。
  2. 修改模板代码

    • 使用 NoHTML() 函数去除 smalltext 字段中的 HTML 标签。
    • esub() 函数用于截取字符串并添加省略号。
wx.jpg ywfw.jpg
热门