QQ咨询 官方微信

添加微信好友

官方小程序

百度小程序

微信小程序

头条小程序

关于我们

SDCMS

sdcms后台提取摘要去除html标签(二次开发)

 admin  2022-06-03 20:06:46
SDCMS1.3版本的后台,在提取摘要的时候,只是转换了HTML标签,并没有去除,对于通过“无格式文本粘贴”的文章来说,一般都可以正常提取摘要,可是,我们往往面对的是众多的小白客户,他们在发布内容的时候,一般都是直接复制粘贴,这样造成的后果就是把原文章的格式也一块复制过来了,这样提取的摘要也就自带了很多html标签!

  SDCMS1.3读取摘要的代码为:
  1. <%=Content_Encode(t17)%> 

通过查找Content_Encode函数得知:
  1. '===================================== 
  2. '转换内容,防止意外 
  3. '===================================== 
  4. Function Content_Encode(ByVal t0) 
  5.     IF IsNull(t0) Or Len(t0)=0 Then 
  6.         Content_Encode="" 
  7.     Else 
  8.         Content_Encode=Replace(t0,"<","<"
  9.         Content_Encode=Replace(Content_Encode,">",">"
  10.     End IF 
  11. End Function 
Content_Encode函数只是去除了"<"和“>”,并没有去除其他标签!

下边再看自动提取摘要的代码是:代码大概在sdcms_info.asp的477~481行

  1. IF Len(O6)=0 Or IsNull(O6) Then 
  2.     Rs(17)=CloseHtml(CutStr(Content_Decode(Re_Html(t11)),Sdcms_Length)) 
  3. Else 
  4.     Rs(17)=CloseHtml(Content_Decode(O6)) 
  5. End IF 
分析Re_html函数,发现Re_html函数竟然是去除html的函数,可是他并没有完全去除(在小也是小白,具体看不太懂为什么没有去除),所以我们只需要重新加一个去除html格式的函数就可以了:
解决方法:
(1)打开inc/functions.asp文件,增加新函数:
  1. Function RemoveHTML(strHTML) 
  2.  Dim objRegExp, Match, Matches  
  3.  Set objRegExp = New Regexp 
  4.  objRegExp.IgnoreCase = True 
  5.  objRegExp.Global = True 
  6.  '取闭合的<> 
  7.  objRegExp.Pattern = "<.+?>" 
  8.  '进行匹配 
  9.  Set Matches=objRegExp.Execute(strHTML) 
  10.  ' 遍历匹配集合,并替换掉匹配的项目 
  11.  For Each Match in Matches  
  12.  strHtml=Replace(strHTML,Match.Value,""
  13.  Next 
  14. '///////////////////////////////////////////////////////// 
  15.  objRegExp.Pattern = "<.+?>" 
  16.  '进行匹配 
  17.  Set Matches=objRegExp.Execute(strHTML) 
  18.  ' 遍历匹配集合,并替换掉匹配的项目 
  19.  For Each Match in Matches  
  20.  strHtml=Replace(strHTML,Match.Value,""
  21.  Next 
  22. '////////////////////////////////////////////////////////// 
  23.  strHTML=replace(strHTML," ",""
  24.  strHTML=replace(strHTML," ",""
  25.  RemoveHTML=strHTML 
  26.  Set objRegExp = Nothing 
  27. End Function 

(2)返回sdcms_info.asp找到的477~481行
修改

  1. Rs(17)=CloseHtml(CutStr(Content_Decode(Re_Html(t11)),Sdcms_Length)) 
改成:
  1. Rs(17)=CloseHtml(CutStr(Content_Decode(RemoveHTML(t11)),Sdcms_Length)) 
这样就可以完全去掉HTML代码了,其他的页面可以按照这样的办法修改!

如果想修改提取的长度,可以直接把
Sdcms_Length改成你的数字,也可以在后台,系统设置里边修改,默认500。

(注:新函数会去掉所有的html代码,如果你的正文中也出现了html代码,可能会误杀,具体没有测试,请广大网友测试过的,可以留言回复一下!)















¥ 打赏
×
如果您觉得文章帮助了您就打赏一下吧
非常感谢你的打赏,我们将继续分享更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

本文《sdcms后台提取摘要去除html标签(二次开发)》发布于石头博客文章,作者:admin,如若转载,请注明出处:https://www.pweb123.com/cms/sdcms/628.html,否则禁止转载,谢谢配合!

文章点评

我来说两句 已有0条评论
点击图片更换

添加微信好友

添加微信好友

微信小程序

百度小程序