当前位置:编程学习 > 网站相关 >>

提交信息关键字过滤类源码

<%
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,ctrc

OK. Everything is ready, Lets begin.
lengtha=len(waiting)
if mid(waiting,lengtha,1) ="|" then
waiting=left(waiting,lengtha-1)
lengtha=lengtha-1
end if

lengthb=len(waitinga)
if mid(waitinga,lengthb,1) ="|" then
waitinga=left(waiting,lengthb-1)
lengthb=lengthb-1
end if

lengthc=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
next

ctrbb=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
next

Call 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 function

Sample:
filtrate("易做图电影免费看",1)="动画片免费看"
filtrate("我爱Fa易做图",2)="[提交的信息被过滤!!请勿在此提交广告或非法信息!!!]"

Programmed by Qiqi, Cnxhacker.NET

%>


 

补充:综合编程 , 安全编程 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,