呵呵,我解决关闭HTML模式下改变段落格式,字体大小,颜色,背景色的办法~~~纯粹个人救急解决方法,应该是完全可以兼容动网以后的解决办法的,……不过我也不能100%保证,但是~这是我认为最佳的解决办法~~抛块砖~等兄弟砸玉~
嗯,拜托有用,但是无效的朋友回个复,好像正则表达式在某些服务器上面过滤得结果会有偏差~导致失败……
最后修改于5/10 15:34,呵呵,经过天的测试,好像米什么问题了~~~提供了05/04升级包里面的savepost.asp和Dv_ubbcode.asp修改好好的文件,本身米修改这两个文件的朋友,可以直接下载后覆盖(请注意备份)
点击浏览该文件已经修改好的05/04文件
5/10:之前陆续修订的一些bug,和N多人呼唤!?的粘贴地址支持……最近忙到扑街,一起测试吧~~~有Bug请Pm我~~~~3/22:加上直接拷贝粘贴图片的支持,基本上,我自己和社区里面的朋友已经从不同地方拷贝了不下300张测试,应该是米问题的……当然我是不会负任何责任的~呵呵,有问题的话欢迎一起解决就是了
新加:简易的粘贴地址链接支持 <A Href=*****>XXXX</A>不会给过滤掉[05/10]
修正:某些情况下font标签过滤错误[05/10]
修正:引用或含有多个font标签时错误
修正:sp1时期的引用贴出现[quote]XXXXX[/quote]
注意,为了可以正确显示,以下的[br]、[quote]$2[/quote]、[img]$5$6[/img]、[img]$3[/img]中的[]是全角的,请自行更换回半角的[]
打开 SavePost.asp
把1140行左右的
'发贴时用,为了减少入库量
Function Html2Ubb(str)
If Str<>"" And Not IsNull(Str) Then
Dim re,tmpstr
Set re=new RegExp
re.IgnoreCase =True
re.Global=True
re.Pattern = "(<br>)"
Str = re.Replace(Str,"[br]")
If Dvbbs.Board_Setting(5)="0" Then
'先去掉标记中的换行
re.Pattern="(<(i|b|p)>)"
Str=re.Replace(Str,"[$2]")
re.Pattern="(<(\/i|\/b|\/p)>)"
Str=re.Replace(Str,"[$2]")
re.Pattern="(>)("&vbNewLine&")(<)"
Str=re.Replace(Str,"$1$3")
re.Pattern="(>)("&vbNewLine&vbNewLine&")(<)"
Str=re.Replace(Str,"$1$3")
re.Pattern="(<DIV class=quote>)((.|\n)*)(<\/div>)"
Str=re.Replace(Str,"[quote]$2[/quote]")
re.Pattern="<(.[^>]*)>"
Str=re.Replace(Str,"")
re.Pattern="(\[(i|b|p)\])"
Str=re.Replace(Str,"<$2>")
re.Pattern="(\[(\/i|\/b|\/p)\])"
Str=re.Replace(Str,"<$2>")
End If
Str = Replace(Str, "[br]", CHR(13) & CHR(10))
re.Pattern = "( )"
Str = re.Replace(Str,Chr(9))
re.Pattern = "(<STRONG>)"
Str = re.Replace(Str,"<b>")
re.Pattern = "(<\/STRONG>)"
Str = re.Replace(Str,"</b>")
re.Pattern ="(<TBODY>)"
Str = re.Replace(Str,"")
re.Pattern ="(<\/TBODY>)"
Str = re.Replace(Str,"")
Set Re=Nothing
Html2Ubb = Str
Else
Html2Ubb = ""
End If
End Function
改为
'发贴时用,为了减少入库量
Function Html2Ubb(str)
If Str<>"" And Not IsNull(Str) Then
Dim re,tmpstr
Set re=new RegExp
re.IgnoreCase =True
re.Global=True
re.Pattern = "(<br>)"
Str = re.Replace(Str,"[br]")
re.Pattern = "( )"
Str = re.Replace(Str,Chr(9))
re.Pattern = "(<STRONG>)"
Str = re.Replace(Str,"<b>")
re.Pattern = "(<\/STRONG>)"
Str = re.Replace(Str,"</b>")
re.Pattern ="(<TBODY>)"
Str = re.Replace(Str,"")
re.Pattern ="(<\/TBODY>)"
Str = re.Replace(Str,"")
re.Pattern = "(<EM>)"
Str = re.Replace(Str,"<i>")
re.Pattern = "(<\/EM>)"
Str = re.Replace(Str,"</i>")
IF Dvbbs.Board_Setting(5)="0" Then
'先去掉标记中的换行
Re.Pattern="(>)("&vbNewLine&")(<)"
Str = Re.Replace(Str,"$1$3")
Re.Pattern="(>)("&vbNewLine&vbNewLine&")(<)"
Str = Re.Replace(Str,"$1$3")
Re.Pattern = "(<H([0-9]*)>)"
Str = Re.Replace(Str,"[H$2]")
Re.Pattern = "(<\/H([0-9]*)>)"
Str = Re.Replace(Str,"[/H$2]")
Re.Pattern = "(<(font)(.[^>]*)>)"
Str = Re.Replace(Str,"x01font$3x02")
Re.Pattern = "(<(a)(.[^>]*)>)"
Str = Re.Replace(Str,"x01a$3x02")
Re.Pattern = "(<(img)(.[^\[]*)(src=)(.[^\[]*)(.jpg|.gif|.png|.jpeg)(.[^\[]*)>)"
Str = Re.Replace(Str,"[img]$5$6[/img]")
Re.Pattern = "(\[img\]("")(.[^\[]*)\[\/img\])"
Str = Re.Replace(Str,"[img]$3[/img]")
Re.Pattern="(<(i|b|p|u|pre|address|strike|sup|sub)>)"
Str = Re.Replace(Str,"[$2]")
Re.Pattern="(<(\/i|\/b|\/p|\/u|\/pre|\/address|\/font|\/strike|\/sup|\/sub)>)"
Str = Re.Replace(Str,"[$2]")
Re.Pattern="(<DIV class=quote>)((.|\n)*)(<\/div>)"
Str = Re.Replace(Str,"[quote]$2[/quote]")
Re.Pattern="<(.[^>]*)>"
Str = Re.Replace(Str,"")
Str=replace(Str,"x02",">")
Str=replace(Str,"x01","<")
Re.Pattern = "(\[H([0-9]*)\])"
Str = Re.Replace(Str,"<H$2>")
Re.Pattern = "(\[\/H([0-9]*)\])"
Str = Re.Replace(Str,"</H$2>")
Re.Pattern="(\[(i|b|p|u|pre|address|strike|sup|sub)\])"
Str = Re.Replace(Str,"<$2>")
Re.Pattern="(\[(\/i|\/b|\/p|\/u|\/pre|\/address|\/font|\/strike|\/sup|\/sub|\/a)\])"
Str = Re.Replace(Str,"<$2>")
End IF
Str = Replace(Str, "[br]", CHR(13) & CHR(10))
Set Re=Nothing
Html2Ubb = Str
Else
Html2Ubb = ""
End If
End Function
再打开inc\Dv_ubbcode.asp
把大约48行开始的
'如果论坛没开放HTML脚本,拦截所有标记和脚本
If Dvbbs.Board_Setting(5)="0" Then
re.Pattern="(<(i|b|p)>)"
s=re.Replace(s,"[$2]")
re.Pattern="(<(\/i|\/b|\/p)>)"
s=re.Replace(s,"[$2]")
re.Pattern="(<DIV class=quote>)((.|\n)*)(<\/div>)"
s=re.Replace(s,"[quote]$2[/quote]")
'先去掉标记中的换行
re.Pattern="(>)("&vbNewLine&")(<)"
s=re.Replace(s,"$1$3")
re.Pattern="(>)("&vbNewLine&vbNewLine&")(<)"
s=re.Replace(s,"$1$3")
re.Pattern="<(.[^>]*)>"
s=re.Replace(s,"")
re.Pattern="(\[(i|b|p)\])"
S=re.Replace(S,"<$2>")
re.Pattern="(\[(\/i|\/b|\/p)\])"
S=re.Replace(s,"<$2>")
If Dv_FilterJS2(s)Then
re.Pattern="\[(br)\]"
s=re.Replace(s,"<$1>")
re.Pattern = "( )"
s = re.Replace(s,Chr(9))
re.Pattern = "(<br>)"
s = re.Replace(s,vbNewLine)
re.Pattern = "(<p>)"
s = re.Replace(s,"")
re.Pattern = "(<\/p>)"
s = re.Replace(s,vbNewLine)
s=server.htmlencode(s)
s="<form name=""scode"&replyid&""" method=""post"" action=""""><TABLE class=tableborder2 cellSpacing=1 cellPadding=3 width=""100%"" align=center border=0><TR><TH height=22>以下内容含脚本,或可能导致页面不正常的代码</TH></TR><TR><TD class=tablebody1 align=middle width=""98%""><TEXTAREA id=CodeText style=""BORDER-RIGHT: 1px dotted; BORDER-TOP: 1px dotted; OVERFLOW-Y: visible; OVERFLOW: visible; BORDER-LEFT: 1px dotted; WIDTH: 98%; COLOR: #000000; BORDER-BOTTOM: 1px dotted"" rows=20 cols=120>"&s&"</TEXTAREA></TD></TR><TR><TD class=tablebody2 align=middle width=""98%""><b>说明:</b>上面显示的是代码内容。您可以先检查过代码没问题,或修改之后再运行.</td></tr><TR><TD class=tablebody1 align=middle width=""98%""><input type=""button"" name=""run"" value=""运行代码"" onclick=""Dvbbs_ViewCode("&replyid&");""></TD></TR></TABLE></form>"
s = Replace(s, vbNewLine, "")
s = Replace(s, CHR(10), "")
s = Replace(s, CHR(13), "")
Dv_UbbCode=s
Exit Function
End If
Else
改为
'如果论坛没开放HTML脚本,拦截所有标记和脚本
If Dvbbs.Board_Setting(5)="0" Then
'转换标题
Re.Pattern = "(<H([0-9]*)>)"
S = Re.Replace(S,"[H$2]")
Re.Pattern = "(<\/H([0-9]*)>)"
S = Re.Replace(S,"[/H$2]")
Re.Pattern = "(<(font)(.[^>]*)>)"
S = Re.Replace(S,"x01font$3x02")
Re.Pattern = "(<(a)(.[^>]*)>)"
S = Re.Replace(S,"x01a$3x02")
'过滤转换img标记
Re.Pattern = "(<(img)(.[^\[]*)(src=)(.[^\[]*)(.jpg|.gif|.png|.jpeg)(.[^\[]*)>)"
S = Re.Replace(S,"[img]$5$6[/img]")
Re.Pattern = "(\[img\]("")(.[^\[]*)\[\/img\])"
S = Re.Replace(S,"[img]$3[/img]")
IF InStr(Ubblists,",1,") =< 0 Then
IF InStr(Lcase(s),"[/IMG]")>0 Then Ubblists = Ubblists & "1,"
End IF
Re.Pattern="(<(i|b|p|u|pre|address|strike|sup|sub)>)"
S = Re.Replace(S,"[$2]")
re.Pattern="(<(\/i|\/b|\/p|\/u|\/font|\/pre|\/address|\/strike|\/sup|\/sub)>)"
S = Re.Replace(S,"[$2]")
re.Pattern="(<DIV class=quote>)((.|\n)*)(<\/div>)"
S = Re.Replace(s,"[quote]$2[/quote]")
IF InStr(Ubblists,",41,") =< 0 Then
IF InStr(Lcase(s),"[/quote]")>0 Then Ubblists = Ubblists & "28,"
End IF
'先去掉标记中的换行
re.Pattern="(>)("&vbNewLine&")(<)"
s=re.Replace(s,"$1$3")
re.Pattern="(>)("&vbNewLine&vbNewLine&")(<)"
s=re.Replace(s,"$1$3")
re.Pattern="<(.[^>]*)>"
s=re.Replace(s,"")
'切换回HTML代码
'转换标题
Re.Pattern = "(\[H([0-9]*)\])"
S = Re.Replace(S,"<H$2>")
Re.Pattern = "(\[\/H([0-9]*)\])"
S = Re.Replace(S,"</H$2>")
S=replace(S,"x02",">")
S=replace(S,"x01","<")
Re.Pattern="(\[(i|b|p|u|pre|address|strike|sup|sub)\])"
S = Re.Replace(S,"<$2>")
Re.Pattern="(\[(\/i|\/b|\/p|\/u|\/pre|\/address|\/font|\/strike|\/sup|\/sub|\/a)\])"
S = Re.Replace(s,"<$2>")
If Dv_FilterJS2(s)Then
re.Pattern="\[(br)\]"
s=re.Replace(s,"<$1>")
re.Pattern = "( )"
s = re.Replace(s,Chr(9))
re.Pattern = "(<br>)"
s = re.Replace(s,vbNewLine)
re.Pattern = "(<p>)"
s = re.Replace(s,"")
re.Pattern = "(<\/p>)"
s = re.Replace(s,vbNewLine)
s=server.htmlencode(s)
s="<form name=""scode"&replyid&""" method=""post"" action=""""><TABLE class=tableborder2 cellSpacing=1 cellPadding=3 width=""100%"" align=center border=0><TR><TH height=22>以下内容含脚本,或可能导致页面不正常的代码</TH></TR><TR><TD class=tablebody1 align=middle width=""98%""><TEXTAREA id=CodeText style=""BORDER-RIGHT: 1px dotted; BORDER-TOP: 1px dotted; OVERFLOW-Y: visible; OVERFLOW: visible; BORDER-LEFT: 1px dotted; WIDTH: 98%; COLOR: #000000; BORDER-BOTTOM: 1px dotted"" rows=20 cols=120>"&s&"</TEXTAREA></TD></TR><TR><TD class=tablebody2 align=middle width=""98%""><b>说明:</b>上面显示的是代码内容。您可以先检查过代码没问题,或修改之后再运行.</td></tr><TR><TD class=tablebody1 align=middle width=""98%""><input type=""button"" name=""run"" value=""运行代码"" onclick=""Dvbbs_ViewCode("&replyid&");""></TD></TR></TABLE></form>"
s = Replace(s, vbNewLine, "")
s = Replace(s, CHR(10), "")
s = Replace(s, CHR(13), "")
Dv_UbbCode=s
Exit Function
End If
Else