<%
function FormatReArray(str)
dim temp,sindex,temp1
temp=str&","
temp1=split(temp,",")
for sindex=0 to ubound(temp1)
if temp1(sindex)<>"" then
temp=replace(temp,temp1(sindex)&",","")
temp=temp&temp1(sindex)&","
end if
next
FormatReArray=left(temp,len(temp)-1)
end function
Function ReplaceReg(str,patrn,replStr,Ignor)
\'=========================================
\'参数解释:
\'str 原来的字符串
\'patrn 要替换的字符串(正则表达式)
\'replStr 要替换成的字符串
\'Ignor 是否区分大小写(1不区分,0区分)
\'=========================================
Dim regEx \' 建立变量。
If Ignor=1 Then Ignor=true else Ignor=false
Set regEx = New RegExp \' 建立正则表达式。
regEx.Pattern = "("&patrn&")" \' 设置模式。
regEx.IgnoreCase = Ignor \' 设置是否区分大小写。
regEx.Global=True
ReplaceReg = regEx.Replace(str,replStr) \' 作替换。
End Function
Function HiddenKeyword(Content,RndKeyWordCount,AllKeyword,AllSign,HiddenColor)
\'********************************************
\'作者:飞飞
\'QQ:276230416
\'网址:www.ffasp.com
\'邮箱:
[email protected] \'********************************************
\'函数使用参数说明
\'Content: 需要执行添加隐藏关键字的文字、段落、文章
\'RndKeyWordCount: 添加隐藏关键字的个数
\'AllKeyword: 要添加到文章中的文字【要向段落末尾添加的关键字,多关键字请使用"|"分割】
\'AllSign 添加到关键字中特殊符号【向关键字中添加随机特殊符号,多特殊符号请使用"|"分割,特殊符号请勿使用"|"】
\'HiddenColor: 要添加到文章中的文字的颜色(和背景色相同,达到隐藏的目的)
\'*********************************************
\'使用的外部函数有
\'1.ReplaceReg [正则表达式替换关键字]
\'2.FormatReArray [去除数组中的重复项]
\'*********************************************
\'使用实例:
\'Response.Write(HiddenKeyword("aaaaaaaaaaaa<br />bbbbbbbbbbb<br>ccccccccc<br>ddddddddd<br>eeeeeeeeeeeee",3,"水平网|ffasp",",|.|。|,|@|!","ff0000"))
\'请查看源代码查看效果
\'
\'*********************************************
Dim EContent,UboundEContent,RndKeyWordArray,DomainLength,DomainPoint,TagName
Dim Keyword,ArryKeyword,ArryCountKeyword,KeywordLength,ArryUboundKeyword
Dim Sign,ArrySign,ArryUboundsign,SignLength
\'------------------------------------------------------
Content=ReplaceReg(Content,"<br>","<br />",1)
Content=ReplaceReg(Content,"<br/>","<br />",1)
Content=ReplaceReg(Content,"</div>","</div>",1)
Content=ReplaceReg(Content,"</p>","</p>",1)
Content=ReplaceReg(Content,"</a>","</a>",1)
\'-------------------------------------------------------
If instr(Content,"</a>")>0 Then
TagName="</a>"
ElseIf instr(Content,"</div>")>0 Then
TagName="</div>"
ElseIf instr(Content,"</p>")>0 Then
TagName="</p>"
ElseIf instr(Content,"<br />") Then
TagName="<br />"
Else
TagName="</a>"
End If
Randomize
\'-------------------------------------------------------
RndKeyWordArray=""
EContent=split(Content,TagName)
UboundEContent=Ubound(EContent)
If UboundEContent+1-RndKeyWordCount<0 Then RndKeyWordCount=UboundEContent+1
Content=""
\'--------------------------------------------------------
for i=1 to RndKeyWordCount
RndKeyWordArray=RndKeyWordArray&Int((UboundEContent+1) * Rnd)
If i<>RndKeyWordCount Then RndKeyWordArray=RndKeyWordArray&","
next
RndKeyWordArray=","&FormatReArray(RndKeyWordArray)&","
for i=0 to UboundEContent
\'=====取出关键字==========================
ArryKeyword=split(AllKeyword,"|")
ArryUboundKeyword=Ubound(ArryKeyword)
Keyword=ArryKeyword(int((ArryUboundKeyword+1)*Rnd))
KeywordLength=len(Keyword)
\'=====取出特殊符号========================
ArrySign=Split(AllSign,"|")
ArryUboundSign=Ubound(ArrySign)
Sign=ArrySign(int((ArryUboundSign+1)*Rnd))
\'=========================================
Content=Content&EContent(i)
If i<>UboundEContent Then Content=Content&TagName
If instr(RndKeyWordArray,","&i&",")>0 and i<>UboundEContent Then
DomainPoint=Int((KeywordLength) * Rnd + 1)
If DomainPoint=KeywordLength Then sign=""
Content=Content&"<span style=""color:#"&HiddenColor&";display:none"">"&left(Keyword,DomainPoint)&sign&mid(Keyword,DomainPoint+1)&"</span>"
End If
Next
\'--------------------------------------------------------
HiddenKeyword=Content
End Function
Response.Write(HiddenKeyword("aaaaaaaaaaaa<br />bbbbbbbbbbb<br>ccccccccc<br>ddddddddd<br>eeeeeeeeeeeee",3,"水平网|ffasp",",|.|。|,|@|!","ff0000"))
%>