%
'===========PBlog2 UBB代码转换代码==========
' Author:PuterJam
' Copryright PBlog2
' Update: 2005-12-29
'===========================================
Function UBBCode(ByVal strContent,DisSM,DisUBB,DisIMG,AutoURL,AutoKEY)
If isEmpty(strContent) Or isNull(strContent) Then
Exit Function
Else
Dim re, strMatchs, strMatch, rndID,tmpStr1,tmpStr2,tmpStr3,tmpStr4
Set re=new RegExp
re.IgnoreCase =True
re.Global=True
IF AutoURL=1 Then
re.Pattern="([^=\]][\s]*?|^)(http|https|rstp|ftp|mms|ed2k)://([A-Za-z0-9\.\/=\?%\-_~`@':+!]*)"
Set strMatchs=re.Execute(strContent)
For Each strMatch in strMatchs
tmpStr1=strMatch.SubMatches(0)
tmpStr2=strMatch.SubMatches(1)
tmpStr3=checkURL(strMatch.SubMatches(2))
strContent=replace(strContent,strMatch.Value,tmpStr1"a href="""tmpStr2"://"tmpStr3""" target=""_blank"">"tmpStr2"://"tmpStr3"/a>",1,-1,0)
Next
're.Pattern="(^|\s)(www\.\S+)"
'strContent=re.Replace(strContent,"$1a href=""http://$2"" target=""_blank"">$2/a>")
End IF
IF Not DisUBB=1 Then
IF Not DisIMG=1 Then
re.Pattern="(\[img\])(.[^\]]*)\[\/img\]"
Set strMatchs=re.Execute(strContent)
For Each strMatch in strMatchs
tmpStr1=(strMatch.SubMatches(1))
strContent=replace(strContent,strMatch.Value,"img src="""tmpStr1""" border=""0"" alt=""""/>",1,-1,0)
Next
re.Pattern="\[img=(left|right|center|absmiddle|)\](.[^\]]*)(\[\/img\])"
Set strMatchs=re.Execute(strContent)
For Each strMatch in strMatchs
tmpStr1=strMatch.SubMatches(0)
tmpStr2=checkURL(strMatch.SubMatches(1))
strContent=replace(strContent,strMatch.Value,"img align="""tmpStr1""" src="""tmpStr2""" border=""0"" alt=""""/>",1,-1,0)
Next
re.Pattern="\[img=(\d*|),(\d*|)\](.[^\]]*)\[\/img\]"
Set strMatchs=re.Execute(strContent)
For Each strMatch in strMatchs
tmpStr1=strMatch.SubMatches(0)
tmpStr2=strMatch.SubMatches(1)
tmpStr3=checkURL(strMatch.SubMatches(2))
strContent=replace(strContent,strMatch.Value,"img width="""tmpStr1""" height="""tmpStr2""" src="""tmpStr3""" border=""0"" alt=""""/>",1,-1,0)
Next
re.Pattern="\[img=(\d*|),(\d*|),(left|right|center|absmiddle|)\](.[^\]]*)(\[\/img\])"
Set strMatchs=re.Execute(strContent)
For Each strMatch in strMatchs
tmpStr1=strMatch.SubMatches(0)
tmpStr2=strMatch.SubMatches(1)
tmpStr3=strMatch.SubMatches(2)
tmpStr4=checkURL(strMatch.SubMatches(3))
strContent=replace(strContent,strMatch.Value,"img width="""tmpStr1""" height="""tmpStr2""" align="""tmpStr3""" src="""tmpStr4""" border=""0"" alt=""""/>",1,-1,0)
Next
else
re.Pattern="(\[img\])(.[^\]]*)\[\/img\]"
Set strMatchs=re.Execute(strContent)
For Each strMatch in strMatchs
tmpStr1=checkURL(strMatch.SubMatches(1))
strContent=replace(strContent,strMatch.Value,"a href="""tmpStr1""" target=""_blank"" title="""tmpStr1""">img src=""images/image.gif"" alt="""" style=""margin:0px 2px -3px 0px"" border=""0""/>查看图片/a>",1,-1,0)
Next
re.Pattern="\[img=(left|right|center|absmiddle|)\](.[^\]]*)(\[\/img\])"
Set strMatchs=re.Execute(strContent)
For Each strMatch in strMatchs
tmpStr1=strMatch.SubMatches(0)
tmpStr2=checkURL(strMatch.SubMatches(1))
strContent=replace(strContent,strMatch.Value,"a href="""tmpStr2""" target=""_blank"" title="""tmpStr2""">img src=""images/image.gif"" alt="""" style=""margin:0px 2px -3px 0px"" border=""0""/>查看图片/a>",1,-1,0)
Next
re.Pattern="\[img=(\d*|),(\d*|)\](.[^\]]*)\[\/img\]"
Set strMatchs=re.Execute(strContent)
For Each strMatch in strMatchs
tmpStr1=strMatch.SubMatches(0)
tmpStr2=strMatch.SubMatches(1)
tmpStr3=checkURL(strMatch.SubMatches(2))
strContent=replace(strContent,strMatch.Value,"a href="""tmpStr3""" target=""_blank"" title="""tmpStr3""">img src=""images/image.gif"" alt="""" style=""margin:0px 2px -3px 0px"" border=""0""/>查看图片/a>",1,-1,0)
Next
re.Pattern="\[img=(\d*|),(\d*|),(left|right|center|absmiddle|)\](.[^\]]*)(\[\/img\])"
Set strMatchs=re.Execute(strContent)
For Each strMatch in strMatchs
tmpStr1=strMatch.SubMatches(0)
tmpStr2=strMatch.SubMatches(1)
tmpStr3=strMatch.SubMatches(2)
tmpStr4=checkURL(strMatch.SubMatches(3))
strContent=replace(strContent,strMatch.Value,"a href="""tmpStr4""" target=""_blank"" title="""tmpStr4""">img src=""images/image.gif"" alt="""" style=""margin:0px 2px -3px 0px"" border=""0""/>查看图片/a>",1,-1,0)
Next
End IF
'-----------多媒体标签----------------
re.Pattern="\[(swf|wma|wmv|rm|ra|qt)(=\d*?|)(,\d*?|)\]([^>]*?)\[\/(swf|wma|wmv|rm|ra|qt)\]"
Set strMatchs=re.Execute(strContent)
dim strType,strWidth,strHeight,strSRC,TitleText
For Each strMatch in strMatchs
RAndomize
strType=strMatch.SubMatches(0)
if strType="swf" then
TitleText="img src=""images/flash.gif"" alt="""" style=""margin:0px 2px -3px 0px"" border=""0""/>Flash动画"
elseif strType="wma" then
TitleText="img src=""images/music.gif"" alt="""" style=""margin:0px 2px -3px 0px"" border=""0""/>播放音频文件"
elseif strType="wmv" then
TitleText="img src=""images/mediaplayer.gif"" alt="""" style=""margin:0px 2px -3px 0px"" border=""0""/>播放视频文件"
elseif strType="rm" then
TitleText="img src=""images/realplayer.gif"" alt="""" style=""margin:0px 2px -3px 0px"" border=""0""/>播放real视频流文件"
elseif strType="ra" then
TitleText="img src=""images/realplayer.gif"" alt="""" style=""margin:0px 2px -3px 0px"" border=""0""/>播放real音频流文件"
elseif strType="qt" then
TitleText="img src=""images/mediaplayer.gif"" alt="""" style=""margin:0px 2px -3px 0px"" border=""0""/>播放mov视频文件"
end if
strWidth=strMatch.SubMatches(1)
strHeight=strMatch.SubMatches(2)
if (len(strWidth)=0) then
strWidth="400"
else
strWidth=right(strWidth,(len(strWidth)-1))
end if
if (len(strHeight)=0) then
strHeight="300"
else
strHeight=right(strHeight,(len(strHeight)-1))
end if
strSRC=checkURL(strMatch.SubMatches(3))
rndID="temp"Int(100000 * Rnd)
strContent= Replace(strContent,strMatch.Value,"div class=""UBBPanel"">div class=""UBBTitle"">"TitleText"/div>div class=""UBBContent"">a id="""+rndID+"_href"" href=""javascript:MediaShow('"+strType+"','"+rndID+"','"+strSRC+"','"+strWidth+"','"+strHeight+"')"">img name="""+rndID+"_img"" src=""images/mm_snd.gif"" style=""margin:0px 3px -2px 0px"" border=""0"" alt=""""/>span id="""+rndID+"_text"">在线播放/span>/a>div id="""+rndID+""">/div>/div>/div>")
Next
Set strMatchs=nothing
re.Pattern="(\[mid\])(.[^\]]*)\[\/mid\]"
strContent= re.Replace(strContent,"embed src=""$2"" height=""45"" width=""314"" autostart=""0"">/embed>")
'-----------常规标签----------------
re.Pattern = "\[url=(.[^\]]*)\](.[^\[]*)\[\/url]"
Set strMatchs=re.Execute(strContent)
For Each strMatch in strMatchs
tmpStr1=checkURL(strMatch.SubMatches(0))
tmpStr2=strMatch.SubMatches(1)
strContent=replace(strContent,strMatch.Value,"a target=""_blank"" href="""tmpStr1""">"tmpStr2"/a>",1,-1,0)
Next
re.Pattern = "\[url](.[^\[]*)\[\/url]"
Set strMatchs=re.Execute(strContent)
For Each strMatch in strMatchs
tmpStr1=checkURL(strMatch.SubMatches(0))
strContent=replace(strContent,strMatch.Value,"a target=""_blank"" href="""tmpStr1""">"tmpStr1"/a>",1,-1,0)
Next
re.Pattern = "\[ed2k=([^\r]*?)\]([^\r]*?)\[\/ed2k]"
Set strMatchs=re.Execute(strContent)
For Each strMatch in strMatchs
tmpStr1=checkURL(strMatch.SubMatches(0))
tmpStr2=strMatch.SubMatches(1)
strContent=replace(strContent,strMatch.Value,"img border="""" src=""images/ed2k.gif"" alt=""""/>a target=""_blank"" href="""tmpStr1""">"tmpStr2"/a>",1,-1,0)
Next
re.Pattern = "\[ed2k]([^\r]*?)\[\/ed2k]"
Set strMatchs=re.Execute(strContent)
For Each strMatch in strMatchs
tmpStr1=checkURL(strMatch.SubMatches(0))
strContent=replace(strContent,strMatch.Value,"img border="""" src=""images/ed2k.gif"" alt=""""/>a target=""_blank"" href="""tmpStr1""">"tmpStr1"/a>",1,-1,0)
Next
re.Pattern = "\[email=(.[^\]]*)\](.[^\[]*)\[\/email]"
Set strMatchs=re.Execute(strContent)
For Each strMatch in strMatchs
tmpStr1=checkURL(strMatch.SubMatches(0))
tmpStr2=strMatch.SubMatches(1)
strContent=replace(strContent,strMatch.Value,"a href=""mailto:"tmpStr1""">"tmpStr2"/a>",1,-1,0)
Next
re.Pattern = "\[email](.[^\[]*)\[\/email]"
Set strMatchs=re.Execute(strContent)
For Each strMatch in strMatchs
tmpStr1=checkURL(strMatch.SubMatches(0))
strContent=replace(strContent,strMatch.Value,"a href=""mailto:"tmpStr1""">"tmpStr1"/a>",1,-1,0)
Next
'-----------字体格式----------------
re.Pattern="\[align=(\w{4,6})\]([^\r]*?)\[\/align\]"
strContent=re.Replace(strContent,"div align=""$1"">$2/div>")
re.Pattern="\[color=(#\w{3,10}|\w{3,10})\]([^\r]*?)\[\/color\]"
strContent=re.Replace(strContent,"span style=""color:$1"">$2/span>")
re.Pattern="\[size=(\d{1,2})\]([^\r]*?)\[\/size\]"
strContent=re.Replace(strContent,"span style=""font-size:$1pt"">$2/span>")
re.Pattern="\[font=([^\r]*?)\]([^\r]*?)\[\/font\]"
strContent=re.Replace(strContent,"span style=""font-family:$1"">$2/span>")
re.Pattern="\[b\]([^\r]*?)\[\/b\]"
strContent=re.Replace(strContent,"strong>$1/strong>")
re.Pattern="\[i\]([^\r]*?)\[\/i\]"
strContent=re.Replace(strContent,"i>$1/i>")
re.Pattern="\[u\]([^\r]*?)\[\/u\]"
strContent=re.Replace(strContent,"u>$1/u>")
re.Pattern="\[s\]([^\r]*?)\[\/s\]"
strContent=re.Replace(strContent,"s>$1/s>")
re.Pattern="\[sup\]([^\r]*?)\[\/sup\]"
strContent=re.Replace(strContent,"sup>$1/sup>")
re.Pattern="\[sub\]([^\r]*?)\[\/sub\]"
strContent=re.Replace(strContent,"sub>$1/sub>")
re.Pattern="\[fly\]([^\r]*?)\[\/fly\]"
strContent=re.Replace(strContent,"marquee width=""90%"" behavior=""alternate"" scrollamount=""3"">$1/marquee>")
End IF
'-----------特殊标签----------------
re.Pattern = "\[down=(.[^\]]*)\](.[^\[]*)\[\/down]"
Set strMatchs=re.Execute(strContent)
For Each strMatch in strMatchs
tmpStr1=checkURL(strMatch.SubMatches(0))
tmpStr2=strMatch.SubMatches(1)
strContent=replace(strContent,strMatch.Value,"img src=""images/download.gif"" alt=""下载文件"" style=""margin:0px 2px -4px 0px""/> a href="""tmpStr1""" target=""_blank"">"tmpStr2"/a>",1,-1,0)
Next
re.Pattern = "\[down\](.[^\[]*)\[\/down]"
Set strMatchs=re.Execute(strContent)
For Each strMatch in strMatchs
tmpStr1=checkURL(strMatch.SubMatches(0))
strContent=replace(strContent,strMatch.Value,"img src=""images/download.gif"" alt=""下载文件"" style=""margin:0px 2px -4px 0px""/> a href="""tmpStr1""" target=""_blank"">下载此文件/a>",1,-1,0)
Next
re.Pattern = "\[mDown=(.[^\]]*)\](.[^\[]*)\[\/mDown]"
Set strMatchs=re.Execute(strContent)
For Each strMatch in strMatchs
tmpStr1=checkURL(strMatch.SubMatches(0))
tmpStr2=strMatch.SubMatches(1)
if len(memName)>0 then
strContent=replace(strContent,strMatch.Value,"img src=""images/download.gif"" alt=""下载文件"" style=""margin:0px 2px -4px 0px""/> a href="""tmpStr1""" target=""_blank"">"tmpStr2"/a>",1,-1,0)
else
strContent=replace(strContent,strMatch.Value,"img src=""images/download.gif"" alt=""只允许会员下载"" style=""margin:0px 2px -4px 0px""/> 该文件只允许会员下载! a href=""login.asp"">登录/a> | a href=""register.asp"">注册/a>",1,-1,0)
end if
Next
re.Pattern = "\[mDown\](.[^\[]*)\[\/mDown]"
Set strMatchs=re.Execute(strContent)
For Each strMatch in strMatchs
tmpStr1=checkURL(strMatch.SubMatches(0))
if len(memName)>0 then
strContent=replace(strContent,strMatch.Value,"img src=""images/download.gif"" alt=""下载文件"" style=""margin:0px 2px -4px 0px""/> a href="""tmpStr1""" target=""_blank"">下载此文件/a>",1,-1,0)
else
strContent=replace(strContent,strMatch.Value,"img src=""images/download.gif"" alt=""只允许会员下载"" style=""margin:0px 2px -4px 0px""/> 该文件只允许会员下载! a href=""login.asp"">登录/a> | a href=""register.asp"">注册/a>",1,-1,0)
end if
Next
re.Pattern="\[code\](.*?)\[\/code\]"
strContent= re.Replace(strContent,"div class=""UBBPanel"">div class=""UBBTitle"">img src=""images/code.gif"" style=""margin:0px 2px -3px 0px"" alt=""程序代码""/> 程序代码/div>div class=""UBBContent"">$1/div>/div>")
re.Pattern="\[quote\](.*?)\[\/quote\]"
strContent= re.Replace(strContent,"div class=""UBBPanel"">div class=""UBBTitle"">img src=""images/quote.gif"" style=""margin:0px 2px -3px 0px"" alt=""引用内容""/> 引用内容/div>div class=""UBBContent"">$1/div>/div>")
re.Pattern="\[quote=(.[^\]]*)\](.*?)\[\/quote\]"
strContent= re.Replace(strContent,"div class=""UBBPanel"">div class=""UBBTitle"">img src=""images/quote.gif"" style=""margin:0px 2px -3px 0px"" alt=""引用来自 $1""/> 引用来自 $1/div>div class=""UBBContent"">$2/div>/div>")
re.Pattern="\[hidden\](.*?)\[\/hidden\]"
if len(memName)>0 then
strContent= re.Replace(strContent,"div class=""UBBPanel"">div class=""UBBTitle"">img src=""images/quote.gif"" style=""margin:0px 2px -3px 0px"" alt=""显示被隐藏内容""/> 显示被隐藏内容/div>div class=""UBBContent"">$1/div>/div>")
else
strContent= re.Replace(strContent,"div class=""UBBPanel"">div class=""UBBTitle"">img src=""images/quote.gif"" style=""margin:0px 2px -3px 0px"" alt=""隐藏内容""/> 隐藏内容/div>div class=""UBBContent"">该内容已经被作者隐藏,只有会员才允许查阅 a href=""login.asp"">登录/a> | a href=""register.asp"">注册/a>/div>/div>")
end if
re.Pattern="\[hidden=(.[^\]]*)\](.*?)\[\/hidden\]"
if len(memName)>0 then
strContent= re.Replace(strContent,"div class=""UBBPanel"">div class=""UBBTitle"">img src=""images/quote.gif"" style=""margin:0px 2px -3px 0px"" alt=""显示被隐藏内容 $1""/> 显示被隐藏内容来自 $1/div>div class=""UBBContent"">$2/div>/div>")
else
strContent= re.Replace(strContent,"div class=""UBBPanel"">div class=""UBBTitle"">img src=""images/quote.gif"" style=""margin:0px 2px -3px 0px"" alt=""隐藏内容 $1""/> 隐藏内容/div>div class=""UBBContent"">该内容已经被作者隐藏,只有会员才允许查阅 a href=""login.asp"">登录/a> | a href=""register.asp"">注册/a>/div>/div>")
end if
re.Pattern="\[html\](.*?)\[\/html\]"
Set strMatchs=re.Execute(strContent)
For Each strMatch in strMatchs
RAndomize
rndID="temp"Int(100000 * Rnd)
strContent=Replace(strContent,strMatch.Value,"div class=""UBBPanel"">div class=""UBBTitle"">img src=""images/html.gif"" style=""margin:0px 2px -3px 0px""> HTML代码/div>div class=""UBBContent"">TEXTAREA rows=""8"" id="""rndID""">"UBBFilter(HTMLDecode(strMatch.SubMatches(0))) "/TEXTAREA>br/>INPUT onclick=""runEx('"rndID"')"" type=""button"" value=""运行此代码""/> INPUT onclick=""doCopy('"rndID"')"" type=""button"" value=""复制此代码""/>br/> [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]/div>/div>",1,-1,0)
Next
Set strMatchs=nothing
'-----------List标签----------------
strContent = Replace(strContent,"[list]","ul>")
re.Pattern = "\[list=(.[^\]]*)\]"
strContent = re.Replace(strContent,"ul style=""list-style-type:$1"">")
re.Pattern = "\[\*\](.[^\[]*)(\n|)"
strContent = re.Replace(strContent,"li>$1/li>")
strContent = Replace(strContent,"[/list]","/ul>")
'-----------表情图标----------------
IF Not DisSM=1 Then
dim log_Smilies,log_SmiliesContent
For Each log_Smilies IN Arr_Smilies
log_SmiliesContent=Split(log_Smilies,"|")
strContent=Replace(strContent,log_SmiliesContent(2)," img src=""images/smilies/"log_SmiliesContent(1)""" border=""0"" style=""margin:0px 0px -2px 0px"" alt=""""/>")
Next
End IF
'-----------关键词识别----------------
IF AutoKEY=1 Then
dim log_Keywords,log_KeywordsContent
For Each log_Keywords IN Arr_Keywords
log_KeywordsContent=Split(log_Keywords,"$|$")
IF log_KeywordsContent(3)>"None" Then
strContent=Replace(strContent,log_KeywordsContent(1),"a href="""log_KeywordsContent(2)""" target=""_blank"">img src=""images/keywords/"log_KeywordsContent(3)""" border=""0"" alt=""""/> "log_KeywordsContent(1)"/a>")
Else
strContent=Replace(strContent,log_KeywordsContent(1),"a href="""log_KeywordsContent(2)""" target=""_blank"">"log_KeywordsContent(1)"/a>")
End IF
Next
End IF
Set re=Nothing
UBBCode=strContent
End IF
End Function
%>