首页 > 其他分享 >用自定义函数解决帝国cms的简介截取字符时出现html的问题

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

时间:2024-10-05 17:16:10浏览次数:7  
标签:NoHTML string 自定义 preg html replace HTML cms

帝国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() 函数用于截取字符串并添加省略号。

标签:NoHTML,string,自定义,preg,html,replace,HTML,cms
From: https://www.cnblogs.com/hwrex/p/18448028

相关文章

  • 帝国cms发布内容保存不了emoji表情的解决方法
    在帝国CMS中发布内容时,如果包含emoji表情,可能会导致保存失败或部分内容丢失。为了解决这一问题,需要从以下几个方面入手:配置数据库支持emoji表情修改帝国CMS的数据库配置文件对字符串进行base64编码和解码步骤1:配置数据库支持emoji表情修改数据库表的字符集......
  • 帝国CMS增加信息自动把内容图片的alt和title属性替换为信息标题
    要在帝国CMS中自动为图片添加 alt 和 title 属性,可以按照以下步骤操作:步骤1:添加自定义函数 user_imgalt()打开 userfun.php 文件找到 e/class/userfun.php 文件并打开。添加自定义函数 user_imgalt()在文件末尾(?> 之前)添加以下函数:functionuser_im......
  • 帝国CMS管理员密码忘记的解决方法
    如果你忘记了帝国CMS的后台登录账号和密码,可以通过以下几种方法来解决这个问题:方法1:重置管理员密码(通过数据库)登录数据库使用phpMyAdmin或MySQL命令行工具登录到数据库。查找管理员用户表查找管理员用户的表,通常为 ecms_admin 或 ecms_user。更新密码......
  • 帝国cms忘记登陆账号密码怎么办
    如果你忘记了帝国CMS的后台登录账号和密码,可以通过以下几种方法来解决这个问题:方法1:重置管理员密码(通过数据库)登录数据库使用phpMyAdmin或MySQL命令行工具登录到数据库。查找管理员用户表查找管理员用户的表,通常为 ecms_admin 或 ecms_user。更新密码......
  • 帝国如何解决帝国CMS管理员忘记密码的问题
    创建临时脚本创建一个临时PHP脚本来重置密码。例如,在 e 目录下创建一个 reset_password.php 文件:php <?phprequire_once('./class/connect.php');require_once('./class/config.php');require_once('./class/function.php');$admin_id=1;//管理员ID$......
  • 帝国cms登录后台提示“登录成功”,接着又提示“您还未登录”
    当帝国CMS登录后台提示“登录成功”,但接着又提示“您还未登录”的问题,通常是由于权限设置不当导致的。具体解决步骤如下:备份相关目录:在进行任何权限修改之前,请先备份/e/data/adminlogin目录及其内容,以防万一。更改目录权限:使用FTP客户端(如FileZilla、WinSCP等)或通过服务器......
  • 修改帝国CMS模板出现Application Firewall Alert错误
    当在修改帝国CMS模板时出现“ApplicationFirewallAlert”错误,通常是因为服务器上的安全软件(如360主机安全卫士、McAfee、服务器安全狗等)误将您的IP地址识别为攻击者并加入了黑名单。以下是一些解决步骤:检查服务器安全软件:登录服务器控制面板或远程桌面。检查是否安装了360......
  • 成功恢复帝国CMS后台的登录信息
    当你忘记帝国CMS后台的管理员账号、密码、认证码或安全答案时,可以按照以下步骤进行恢复:忘记后台管理员账号查看账号使用phpMyAdmin登录数据库。寻找 phome_enewsuser 表。查看 username 字段的内容,这将是你的管理员账号。忘记后台登录密码修改密码使用phpMy......
  • 忘记帝国CMS后台的管理员账号、密码、认证码或安全答案时怎么办
    忘记账号在 phome_enewsuser 表中查看 username 字段的内容。忘记密码在 phome_enewsuser 表中修改 password 字段为 "322d3fef02fc39251436cb4522d29a71"。修改 salt 字段为 "abc"。忘记认证码在 e/class/config.php 文件中将 $do_loginauth 设......
  • 重建帝国cms数据索引表,用于ecms_news_index表损坏丢失或者错误
    当帝国CMS的 ecms_news_index 表损坏或丢失时,可以通过以下步骤重建数据索引表。这些操作需要在数据库中执行,请确保在执行前备份所有相关数据。重建 ecms_news_index 表步骤1:创建临时表 ecms_newstempsql CREATETABLE[!db.pre!]ecms_newstempAS(SELECTid,c......