ubbcode.asp

来自「我的小网站个人利用业余时间设计的」· ASP 代码 · 共 167 行

ASP
167
字号
<%
dim ubbCode_temp_,text,ltext,text2,ubbCode_temp_l,rid

Function ubbCode(strContent,DisSM,DisUBB,DisIMG,AutoURL)

	Dim re
	Set re=new RegExp
	re.IgnoreCase =True
	re.Global=True

	ubbCode=strContent

	IF AutoURL=1 Then
		re.Pattern="([^=\]]\s*)(http|https|rstp|ftp|mms|ed2k)://([^\s&<\[)]*)"
		ubbCode=re.Replace(ubbCode,"$1<a href=""$2://$3"" target=""_blank"">$2://$3</a>")
	End IF

	IF Not DisUBB=1 Then
		IF Not DisIMG=1 Then
			re.Pattern="(\[img\])(.[^\]]*)(\[\/img\])"
			ubbCode=re.Replace(ubbCode,"<IMG SRC=""$2"" border=""0"" onload=""javascript:if(this.width>=538)this.style.width=538;"" onmouseover=""this.style.cursor='hand';"" alt=""按此在新窗口打开图片"" onclick=""window.open(this.src);"">")
			re.Pattern="(\[swf\])(.[^\]]*)(\[\/swf\])"
			ubbCode= re.Replace(ubbCode,"<object classid=""clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"" codebase=""http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0"" width=""550"" height=""400""><param name=""movie"" value=""$2""><param name=""quality"" value=""high""><embed src=""$2"" quality=""high"" pluginspage=""http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"" type=""application/x-shockwave-flash"" width=""550"" height=""400""></embed></object>")
			re.Pattern="(\[wmv\])(.[^\]]*)(\[\/wmv\])"
			ubbCode= re.Replace(ubbCode,"<object classid=""CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95"" width=""450"" height=""350""><param name=""ShowStatusBar"" value=""-1""><param name=""AutoStart"" value=""False""><param name=""Filename"" value=""$2""></object>")
			re.Pattern="(\[wma\])(.[^\]]*)(\[\/wma\])"
			ubbCode= re.Replace(ubbCode,"<object classid=""CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95""  id=""MediaPlayer"" width=""450"" height=""70""><param name=""ShowStatusBar"" value=""-1""><param name=""AutoStart"" value=""False""><param name=""Filename"" value=""$2""></object>")
			re.Pattern="(\[mid\])(.[^\]]*)(\[\/mid\])"
			ubbCode= re.Replace(ubbCode,"<embed src=""$2"" height=""45"" width=""314"" autostart=""0""></embed>")
			re.Pattern="(\[ra\])(.[^\]]*)(\[\/ra\])"
			ubbCode= re.Replace(ubbCode,"<object classid=""clsid:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA"" id=""RAOCX"" width=""450"" height=""60""><param name=""_ExtentX"" value=""6694""><param name=""_ExtentY"" value=""1588""><param name=""AUTOSTART"" value=""0""><param name=""SHUFFLE"" value=""0""><param name=""PREFETCH"" value=""0""><param name=""NOLABELS"" value=""0""><param name=""SRC"" value=""$2""><param name=""CONTROLS"" value=""StatusBar,ControlPanel""><param name=""LOOP"" value=""0""><param name=""NUMLOOP"" value=""0""><param name=""CENTER"" value=""0""><param name=""MAINTAINASPECT"" value=""0""><param name=""BACKGROUNDCOLOR"" value=""#000000""><embed src=""$2"" width=""253"" autostart=""true"" height=""60""></embed></object>")
			re.Pattern="(\[rm\])(.[^\]]*)(\[\/rm\])"
			ubbCode= re.Replace(ubbCode,"<object classid=""clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA"" height=""350"" id=""Player"" width=""450"" viewastext><param name=""_ExtentX"" value=""12726""><param name=""_ExtentY"" value=""8520""><param name=""AUTOSTART"" value=""0""><param name=""SHUFFLE"" value=""0""><param name=""PREFETCH"" value=""0""><param name=""NOLABELS"" value=""0""><param name=""CONTROLS"" value=""ImageWindow""><param name=""CONSOLE"" value=""_master""><param name=""LOOP"" value=""0""><param name=""NUMLOOP"" value=""0""><param name=""CENTER"" value=""0""><param name=""MAINTAINASPECT"" value=""$2""><param name=""BACKGROUNDCOLOR"" value=""#000000""></object><br><object classid=""clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA"" height=""32"" id=""Player"" width=""450"" VIEWASTEXT><param name=""_ExtentX"" value=""18256""><param name=""_ExtentY"" value=""794""><param name=""AUTOSTART"" value=""-1""><param name=""SHUFFLE"" value=""0""><param name=""PREFETCH"" value=""0""><param name=""NOLABELS"" value=""0""><param name=""CONTROLS"" value=""controlpanel""><param name=""CONSOLE"" value=""_master""><param name=""LOOP"" value=""0""><param name=""NUMLOOP"" value=""0""><param name=""CENTER"" value=""0""><param name=""MAINTAINASPECT"" value=""0""><param name=""BACKGROUNDCOLOR"" value=""#000000""><param name=""SRC"" value=""1""></object>")
			re.Pattern="(\[qt\])(.[^\]]*)(\[\/qt\])"
			ubbCode= re.Replace(ubbCode,"<embed src=""$2"" width=""480"" height=""380"" autoplay=""false"" Loop=""false"" controller=""true"" playeveryframe=""false"" cache=""false"" scale=""TOFIT"" bgcolor=""#000000"" kioskmode=""false"" targetcache=""false"" pluginspage=""http://www.apple.com/quicktime/"">")
		End IF

		re.Pattern = "\[url=(.[^\]]*)\](.[^\[]*)\[\/url]"
		ubbCode = re.Replace(ubbCode,"<a target=""_blank"" href=""$1"">$2</a>")
		re.Pattern = "\[url](.[^\[]*)\[\/url]"
		ubbCode = re.Replace(ubbCode,"<a target=""_blank"" href=""$1"">$1</a>")
		re.Pattern = "\[email=(.[^\]]*)\](.[^\[]*)\[\/email]"
		ubbCode = re.Replace(ubbCode,"<a href=""$1"">$2</a>")
		re.Pattern = "\[email](.[^\[]*)\[\/email]"
		ubbCode = re.Replace(ubbCode,"<a href=""mailto:$1"">$1</a>")

		ubbCode = replace(ubbCode,"[b]","<b>",1,-1,1)
		ubbCode = replace(ubbCode,"[/b]","</b>",1,-1,1)
		ubbCode = replace(ubbCode,"[i]","<i>",1,-1,1)
		ubbCode = replace(ubbCode,"[/i]","</i>",1,-1,1)
		ubbCode = replace(ubbCode,"[u]","<u>",1,-1,1)
		ubbCode = replace(ubbCode,"[/u]","</u>",1,-1,1)
		ubbCode = replace(ubbCode,"[fly]","<marquee width=""90%"" behavior=""alternate"" scrollamount=""3"">",1,-1,1)
		ubbCode = replace(ubbCode,"[/fly]","</marquee>",1,-1,1)
		ubbCode = replace(ubbCode,"[list]","<ul>",1,-1,1)
		ubbCode = replace(ubbCode,"[list=1]","<ol type=""1"">",1,-1,1)
		ubbCode = replace(ubbCode,"[list=a]","<ol type=""a"">",1,-1,1)
		ubbCode = replace(ubbCode,"[list=A]","<ol type=""A"">",1,-1,1)
		ubbCode = replace(ubbCode,"[*]","<li>",1,-1,1)
		ubbCode = replace(ubbCode,"[/list]","</ul></ol>",1,-1,1)
		re.Pattern="\[font=([^<>\]]*?)\]"
		ubbCode=re.Replace(ubbCode,"<font face=""$1"">")
		ubbCode=replace(ubbCode,"[/font]","</font>",1,-1,1)
		re.Pattern="\[color=([^<>\]]*?)\]"
		ubbCode=re.Replace(ubbCode,"<font color=""$1"">")
		ubbCode=replace(ubbCode,"[/color]","</font>",1,-1,1)
		re.Pattern="\[align=([^<>\]]*?)\]"
		ubbCode=re.Replace(ubbCode,"<div align=""$1"">")
		ubbCode=replace(ubbCode,"[/align]","</div>",1,-1,1)
		re.Pattern="\[size=(\d*?)\]"
		ubbCode=re.Replace(ubbCode,"<font size=""$1"">")
		ubbCode=replace(ubbCode,"[/size]","</font>",1,-1,1)
	End IF

	re.Pattern = "\[down=(.[^\]]*)\](.[^\[]*)\[\/down]"
	ubbCode = re.Replace(ubbCode,"<img src=""images/download.gIF"" align=""absmiddle""> <a href=""$1"" target=""_blank"">$2</a>")
	re.Pattern="\[code\](.*?)\[\/code\]"
	ubbCode= re.Replace(ubbCode,"<table border=""0"" width=""90%"" cellspacing=""0"" cellpadding=""0"" align=""center""><tr><td>程序代码:</td></tr><tr><td><table border=""0"" width=""100%"" cellspacing=""1"" cellpadding=""10"" bgcolor=""#DFDFDF"" class=""code""><tr><td width=""100%"" bgcolor=""#FFFFFF"">$1</td></tr></table></td></tr></table>")
	ubbCode=ubbCode_HTML(ubbCode)
	ubbCode=ubbCode_QUOTE(ubbCode)
	
	IF Not DisSM=1 Then
		dim log_Smilies,log_SmiliesContent
		For Each log_Smilies IN Arr_Smilies
			log_SmiliesContent=Split(log_Smilies,"|")
			ubbCode=Replace(ubbCode,log_SmiliesContent(2)," <img src=""images/smilies/"&log_SmiliesContent(1)&""" border=""0"" align=""absmiddle"">",1,-1,1)
		Next
	End IF

	Set re=Nothing
	ubbCode=Dec_ubbCode(ubbCode)

End Function

Function ubbCode_quote(ubbCode_temp)
        ubbCode_temp_=ubbCode_temp
	do while ubbCode_temp_ <> ""
			text=SearchubbCode(ubbCode_temp_,"[quote]","[/quote]")
		IF text<>"" Then
			ltext=Enc_ubbCode(text)
			ltext=replace(ltext,"[img]","",1,-1,1)
			ltext=replace(ltext,"[/img]","",1,-1,1)
			ltext=replace(ltext,"[swf]","",1,-1,1)
			ltext=replace(ltext,"[/swf]","",1,-1,1)
			ltext=replace(ltext,"[html]","",1,-1,1)
			ltext=replace(ltext,"[/html]","",1,-1,1)
			ltext=replace(ltext,"&lt;br&gt;","<br>",1,-1,1)
			ltext="<table border=""0"" width=""90%"" cellspacing=""0"" cellpadding=""0"" align=""center""><tr><td>引用内容:</td></tr><tr><td><table border=""0"" width=""100%"" cellspacing=""1"" cellpadding=""10"" bgcolor=""#DFDFDF""><tr><td width=""100%"" bgcolor=""#FFFFFF"" class=""code"">"&text
			ubbCode_temp_=replace(ubbCode_temp_,"[quote]"&text,ltext,1,1,1)
			ubbCode_temp_=replace(ubbCode_temp_,ltext&"[/quote]",ltext&"</td></tr></table></td></tr></table>",1,1,1)
		Else
			Exit do
		End IF
	Loop
        ubbCode_quote=ubbCode_temp_
End Function

Function ubbCode_html(ubbCode_temp)
        ubbCode_temp_=ubbCode_temp
	do while ubbCode_temp_ <> ""
			text=SearchubbCode(ubbCode_temp_,"[html]","[/html]")
		IF text<>"" Then
			ltext=replace(text,"<br>",vbcrlf,1,-1,1)
			ltext=replace(ltext,"&nbsp;",chr(32),1,-1,1)
			ltext=Enc_ubbCode(ltext)
			RAndomize
			rid="temp"&Int(100000 * Rnd)
			ltext="<table border=""0"" width=""90%"" cellspacing=""0"" cellpadding=""0"" align=""center""><tr><td>HTML代码:</td></tr><tr><td><table border=""0"" width=""100%"" cellspacing=""1"" cellpadding=""10"" bgcolor=""#DFDFDF"" class=""code""><tr><td width=""100%"" bgcolor=""#FFFFFF""><TEXTAREA  rows=8 style=""width:100%"" id="""&rid&""">"&ltext
			ubbCode_temp_=replace(ubbCode_temp_,"[html]"&text,ltext,1,1,1)
			ubbCode_temp_=replace(ubbCode_temp_,ltext&"[/html]",ltext&"</TEXTAREA><br><INPUT onclick=runEx("""&rid&""")  type=button value=运行代码 > [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]</td></tr></table></td></tr></table>",1,1,1)
		Else
			Exit do
		End IF
	Loop
        ubbCode_html=ubbCode_temp_
End Function

Function SearchubbCode(Txt,StartTxt,EndTxt)
	dim cText,startubbCode,EndubbCode
	cText=Txt
	startubbCode=1
	do while SearchubbCode=""
	SearchubbCode=""
	startubbCode=instr(startubbCode,cText,StartTxt,1)
	IF startubbCode=0 Then Exit do
	EndubbCode=instr(startubbCode,cText,EndTxt,1)
	IF EndubbCode=0 Then Exit do
	startubbCode=startubbCode+len(StartTxt)
	SearchubbCode=mid(cText,startubbCode,EndubbCode-startubbCode)
	Loop
End Function

Function Enc_ubbCode(strContent)
	strContent=replace(strContent,"[","["&chr(176),1,-1,1)
	strContent=replace(strContent,"]",chr(176)&"]",1,-1,1)
	strContent=replace(strContent,"/","/"&chr(176),1,-1,1)
	Enc_ubbCode=strContent
End Function

Function Dec_ubbCode(strContent)
	strContent=replace(strContent,"["&chr(176),"[",1,-1,1)
	strContent=replace(strContent,chr(176)&"]","]",1,-1,1)
	strContent=replace(strContent,"/"&chr(176),"/",1,-1,1)
	Dec_ubbCode=strContent
End Function

%>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?