从MySQL数据库表中删除垃圾邮件

时间:2012-04-03 02:36:39

标签: php mysql spam

我目前正在继承我继承的PHP网站。它包含一个评论功能,当前评论数据库中包含一堆垃圾评论,业主希望将其删除。

垃圾评论通常包括我目前正在匹配和删除的原始HTML或BBCode网址(评论不允许/呈现HTML),评论和名称与典型的关键字(免费,购买,优惠券,贷款,cialis,伟哥等)和随意的废话,一个例子:

  他们将与酒店交叉核对。经过长时间的讨论,她絮絮叨叨   说有关预订的有关人员离开了酒店的工作   现在我可以获得备用酒店。我特意订了这个   付了这么多钱之后就在海滩上的酒店但是我   提供潘吉姆市的备用酒店,从那里到达   海滩需要45-60分钟左右,还有入住的乐趣   在我的家人的海滩上。我做出妥协的方式   在Panjim的新酒店入住。但是在我入住新酒店时28日   皇家帕克海滩度假村我惊呆了,看到所谓的3州   星级酒店。酒店附近没有提到的地位   卖包装。酒店质量完全低档。它更好   与挖出的三级小标准小镇旅馆相匹配   入口,便宜地完成了接待区,臭气熏天的房间和   浴室,烧窗帘,劣质家具,接下来正在建设中   到我的房间,破旧的浴室固定装置,脏地板,又脏又潮湿   床单和整体不好的感觉。[我有所有照片的证明]我   立即通知我的旅行状态的酒店,并希望   替代酒店,但让我的旅行“继续告诉我等待他们   将调查它。因为我的生病了,立即需要休息   我别无选择,只能在这家酒店办理入住手续。同时我还在继续   把Makemytrip叫了好几个小时但是有点好用。这浪费了一整个   最后,我安排了一个新的正版四星级酒店房间租金   是卢比。 5500 / - 每晚(远低于7211卢比/ - 预订此酒店   通过我的旅行。我在2012年1月28日通知MakeMy旅行取消我的   预订并全额退款。还寄给他们一封邮件   这方面。我仍在为他们的积极回应而努力,但我是   最不希望得到它。所以现在我正在接近法庭以获得我的   会费和赔偿金.Arvinder

我一直在做字符串匹配并删除明显的术语,但它有点单调乏味。如果有人有一个有效的方法来做到这一点,我真的很想听到它。

2 个答案:

答案 0 :(得分:0)

由于您尚未定义垃圾邮件包含的内容,因此很难给出更具体的示例,但我会考虑使用与特定关键字匹配的正则表达式,数据中的模式

DELETE FROM `table` WHERE `field` REGEXP 'vigra|spam|example'

编辑:同样从您更新的示例中,您可以将垃圾邮件标记为具有特定字符长度:

DELETE FROM `table` 
WHERE `field` REGEXP 'vigra|spam|example'
OR LENGTH(`field`) > 500
... etc

答案 1 :(得分:0)

我对我关注的其中一个应用程序有类似的问题。我称那些提供垃圾数据“小丑”的人,并且正在收集一套识别潜在小丑的规则。初始规则集非常基本(可能与您现在拥有的关键字类似)。根据我自己的观察和同事的提示,这套规则随着时间的推移而不断扩大。

注意我声明我识别潜在的小丑。可能包含小丑数据的表格会得到一个列IsClown,它可以代表“未经检查”,“潜在的小丑”,“不是小丑”,“是一个小丑”。我有一个自动过程来检查所有新数据。如果该过程与一个或多个规则匹配,则该条目被标记为“潜在的小丑”,并且人类使用简单的UI检查条目,或者将状态移动到“不是小丑”或“是小丑”。

这是否适合您取决于可以定义规则的程度以及您正在考虑的数据量。它对我有用,所以我想分享。