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

帝国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() 函数用于截取字符串并添加省略号。
posted @   黄文Rex  阅读(42)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示