所在位置:杂记 >> ASP >> 垃圾信息过滤处理
垃圾信息过滤处理
发表于 十一年前(2009-3-3 13:15:16) | 阅读 (2350) | 评论 (12)

随着web2.0模式的兴起,目前国内网络监管的力度正在逐步加大,也许你也有同样的遭遇:经常接到网警支队的信息调整通知;如果您在这段时间正巧不方便进行站点调整就麻烦了,其实网站方面在信息的检控上也可以通过技术手段增设垃圾信息过滤功能的。

以下是本人做的一个ASP版垃圾信息判断函数,主要功能根据您设置的关键字不只能过滤反动、色情信息,而且也可以过滤广告机器人发布的垃圾广告、回复者不想透露的个人联系信息等。

'--- 函数名:ReplaceContactInfo        ---
'--- 参数:tStr(要过滤的字符串) tRepStr(若经判断不合法要显示的内容) tTrue(是否应用过滤或屏蔽功能,可动态判断这里只需要值为true或false的结果)    ---
'--- 功能:过滤电话、邮件、网址、色情、反动        ---
Function ReplaceContactInfo(tStr,tRepStr,tTrue)
    fctRepStr=tRepStr
    dim fctReplaceContactInfo,dimTempContactInfo
    if tTrue and not CheckNull(tStr) then
        if CheckNull(tRepStr) then
            tRepStr="<span style='color:#999999' title='联系信息涉及隐私故屏蔽'>**此信息被隐藏,请负责人员登录后查看**</span>"
        end if

        set regEmpty = New RegExp
        regEmpty.Pattern="这里填写网络禁用关键字多个用|分隔,关键字下载见本文结尾处"
        regEmpty.IgnoreCase = false   ' 设置是否区分字符大小写。
        regEmpty.Global = True   ' 设置全局可用性。
        dimIsInStrTStrPat=regEmpty.test(tStr)

        if dimIsInStrTStrPat then
            fctReplaceContactInfo="<span style='color:#999999;' title='净化网络'>系统检测到此信息含有反动或色情等违规内容,故而屏蔽;请珍惜每一个交流机会。</span>"
        else
            on error resume next
            if CheckNull(tStr) then
                SdkStr=""
                exit function
            end if
            dim sList,dList,i,s,RegEx
            dimTempContactInfo=tStr
            sList="1|2|3|4|5|6|7|8|9|0|-|_|~|/|。|:|&|@|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z"
            dList="1|2|3|4|5|6|7|8|9|0|-|_|~|/|.|:|&|@|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z"
            s=ubound(split(sList,"|"))
            '过滤大写字符为小写字符
            for i=0 to s
                tStr=replace(tStr,split(sList,"|")(i),split(dList,"|")(i))
            next
            Set RegEx=New RegExp
                RegEx.Pattern="(\(\d{2,4}\)|(\d{3,4}-?))\d{7,8}|\d{6,15}|0?13\d{1}\d{8}|((\w)|[-]|[.])+@(((\w)|[-])+[.])+[a-z]{2,4}|http:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?|([\w-]+\.)+(?:[a-z]{2,3})+(\/[\w- .\/?%&=]*)?"'处理电话号码和电子邮件、网址
                RegEx.IgnoreCase=True
                RegEx.Global=True
                fctReplaceContactInfo=RegEx.Replace(tStr,tRepStr)
            Set RegEx=Nothing

            if (ubound(split(fctReplaceContactInfo,tRepStr))>1 and (ubound(split(fctReplaceContactInfo,tRepStr))>6 or inStr(fctReplaceContactInfo,"市场")>0 or (inStr(fctReplaceContactInfo,"公司")>0 and ubound(split(fctReplaceContactInfo,tRepStr))>3 and inStr(fctReplaceContactInfo,"贵公司")<0) or inStr(fctReplaceContactInfo,"全体员工")>0 or inStr(fctReplaceContactInfo,"href=")>0 or inStr(fctReplaceContactInfo,"url=")>0) or inStr(fctReplaceContactInfo,"href=")>5 or inStr(fctReplaceContactInfo,"url=")>3) then
                fctReplaceContactInfo="<span style='color:#999999;' title='拒绝广告,净化网络'>系统检测到此信息为疑似广告内容,故而屏蔽;请珍惜交流机会,不要在此发布广告,谢谢合作。</span>"
            elseif not CheckNull(fctRepStr) then
                fctReplaceContactInfo=dimTempContactInfo
            end if
        end if
    else
        fctReplaceContactInfo=tStr
    end if
    ReplaceContactInfo=fctReplaceContactInfo
End Function


''检查一个字符串是否为空
Function checkNull(strCheck)
    if isnull(strCheck) or trim(strCheck) = "" then
        checkNull = true
    else
        checkNull = false
    end if
End Function

网检关键字下载:http://www.pyzy.net/PyzyUpFile/08.04.16KeyWord.rar
注意本包为08年4月份官方发布的,如果您手上有最新的欢迎评论中发布下载地址共享。

杂记评论(12):
回复 1楼 qwerqwrqwer 来自 广东省东莞市 电信  发表于 十一年前(2009-7-13 14:23:16)
fasdfasdrqwerqwe
回复 2楼 fgbfgfg 来自 湖南省常德市 网通  发表于 十一年前(2009-7-13 14:27:52)
new sex().sex()
回复 3楼 pyzy 来自 山东省淄博市 铁通  发表于 十一年前(2009-7-14 8:42:08)
上面两位不算垃圾信息,垃圾信息的衡量标准可以通过文中程序看出来。 1.联系方式、连接地址的数量 2.广告词汇检查 3.发动言论检测
asp1的回复 来自于 中国  回复于 十一年前(2009-8-20 17:47:21)
系统检测到此信息含有反动或色情等违规内容,故而屏蔽;请珍惜每一个交流机会。
回复 4楼 司徒正美 来自 广东省江门市 (新会区)电信  发表于 十一年前(2009-7-15 10:39:52)
被沙发与地板搞死了,这方法不行啊
回复 5楼 雨夜网友 来自 湖北省武汉市 电信  发表于 十一年前(2009-7-23 16:25:56)
系统检测到此信息含有反动或色情等违规内容,故而屏蔽;请珍惜每一个交流机会。
回复 6楼 pyzy 来自 山东省日照市 铁通  发表于 十一年前(2009-7-24 10:29:16)
(-_-)!|   方法中的词库可以扩展的。随便你怎么试随时发现随时增加就是了。
回复 7楼 asp 来自 河北省石家庄市 铁通  发表于 十一年前(2009-8-19 18:12:34)
兄弟 这个东西怎么用呢
回复 8楼 阅网博客 来自 河南省郑州市 网通  发表于 十年前(2010-7-20 18:36:45)
呵呵,关键字要多哦!
pyzy的回复 来自于  回复于 十年前(2010-7-20 21:40:20)
是啊,毕竟是机器,你想要他替你做什么必须事先告诉他
PYZY的回复 来自于  回复于 十年前(2010-7-20 21:44:05)
就关键词这事可以看文章中的附件,也可以到当地网监部门网站下载最新版本,自行添加,为保证效率,我没加那些词库
回复 9楼 试试你的代码 来自 内蒙古 网通  发表于 十年前(2010-10-14 20:05:28)
征途566
回复 10楼 试试你的代码 来自 内蒙古 网通  发表于 十年前(2010-10-14 20:07:38)
左小娜
共12条评论  第1页/共2页  首页 上页 下页 尾页
称谓(必填):  网站(选填):
上一篇:将纯数字转换为人民币大写格式  下一篇:CSS 区分IE6,IE7,firefox     <<返回杂记列表