提交信息关键字过滤类源码
<%
Cnxhacker.Net 全站系统文章和提交信息关键字过滤类源码
Cnxhacker.Net 奇奇编写转贴请保留此信息,注释信息会被解释程序忽略,这不会对脚本的执行速度和程序整体性能造成任何影响,谢谢!
Add <!--#include file="filtration.asp"--> to the start of any page on which you want to call the function.First, please specify some key words to filtrate and pass to Waiting, separate each with "|".
BE CAREFUL: No need to add another "|" at the end of the string.
Waiting="Fa易做图|易做图电影"If you want to give out a warning to cover it all when the above keywords are seen, specify the warning message here, one after another, separated by "|".
WaitingtoCover="[提交的信息被过滤!!请勿在此提交广告或非法信息!!!]"If you want the above keywords to filtrate to be taken place, specify the string with which you want to cover it.
WaitingA="中国气功万岁!|动画片"
WARNING: The length of any of the specified keywords to filtrate CANNOT be zero or null.dim sa(),sb(),sc()
dim ctra,ctrb,ctrcOK. Everything is ready, Lets begin.
lengtha=len(waiting)
if mid(waiting,lengtha,1) ="|" then
waiting=left(waiting,lengtha-1)
lengtha=lengtha-1
end iflengthb=len(waitinga)
if mid(waitinga,lengthb,1) ="|" then
waitinga=left(waiting,lengthb-1)
lengthb=lengthb-1
end iflengthc=len(waitingtocover)
ctra=0:ctrb=0:ctrc=0
for i=1 to lengtha
if mid(waiting,i,1)="|" then ctra=ctra+1
next
redim preserve sa(ctra+1)for i=1 to lengthb
if mid(waitinga,i,1)="|" then ctrb=ctrb+1
next
redim preserve sb(ctrb+1)ctraa=0
for i=1 to lengtha
if mid(waiting,i,1)<>"|" then
temps=temps+mid(waiting,i,1)
else
ctraa=ctraa+1
sa(ctraa)=temps
temps=""
if ctraa=ctra then
ctraa=ctraa+1
sa(ctraa)=right(waiting,lengtha-i)
end if
end if
nextctrbb=0
temps=""
for i=1 to lengthb
if mid(waitinga,i,1)<>"|" then
temps=temps+mid(waitinga,i,1)
else
ctrbb=ctrbb+1
sb(ctrbb)=temps
temps=""
if ctrbb=ctrb then
ctrbb=ctrbb+1
sb(ctrbb)=right(waitinga,lengthb-i)
end if
end if
nextCall filtrate(filtration), "filtration" is the source string that you want to have which filtrate, to return a string after filtration.
You have two choices to filtrate a string:
1. To change the keywords you want to filtrate to others;
2. To cover all if any of the specified keywords exists.Specify type of filtration, directly pass the value to "typetofil" when calling the function.
Space is processed as "".
function filtrate(filtration,typetofil)
dim ctrglobal
filt=filtration
select case typetofil
case 1
for i=1 to ctra+1
length=len(sa(i))
for j=1 to len(filtration)
if len(sa(i))>len(filtration) then
exit for
end if
if len(mid(filtration,i))<len(sa(i)) then
exit for
end if
if mid(filtration,j,length)=sa(i) then
temp1=left(filtration,j-1)
temp2=mid(filtration,j+length)
filt=temp1+sb(i)+temp2
end if
next
next
filtrate=filt
case 2
for m=1 to ctra+1
if instr(1,filtration,sa(m))<>0 then
filtrate=waitingtocover
exit function
end if
next
filtrate=filtration
case else
end select
end functionSample:
filtrate("易做图电影免费看",1)="动画片免费看"
filtrate("我爱Fa易做图",2)="[提交的信息被过滤!!请勿在此提交广告或非法信息!!!]"Programmed by Qiqi, Cnxhacker.NET
%>
补充:综合编程 , 安全编程 ,