2012-04-03 105 views
1

我目前正在继承一个PHP网站。它包含一个评论功能,当前评论数据库中有一堆垃圾评论,这些评论所有者想要删除。从MySQL数据库表中删除垃圾邮件

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

,他们将穿越与Hotel.After长商议她fllainy 说,谁做预订的关注peson有leftthe酒店工作 检查,现在我可以给了备用hotel.I特意订了这个 酒店,这是在沙滩上支付了这么多钱后,但我是 提供了一个替代酒店在巴拿吉城从哪里到达 沙滩需要45-60分钟左右的时间,还有在我家的沙滩上住 的乐趣。我采取了任何妥协方式,并且 在Panjim的新酒店入驻。但是28日当我检查了新酒店 皇家百乐海滩度假村我惊呆了,看到所谓的3 星级酒店的状态。酒店是没有接近提到的状态,而 销售包。酒店的质量是完全低品位。它更好 相匹配的第三类子标准的小城镇的旅馆,带有挖出 入口,廉价地完成了接待区,臭烘烘的房间& 浴室,烧焦的窗帘,劣质家具,正在进行敷设渠道未来 到我的房间,破旧的卫生间灯具,地板脏,肮脏,潮湿 床单和整体不好的感觉[我有所有照片的证明]我 立即通知让我的旅行状态的酒店,并希望 备用酒店,但让我的旅行'不断告诉我等待他们 将看着它。因为我的小鸡生病了,立即需要休息 我没有选择,只能在这家酒店办理登机手续。同时我保持 几小时打电话Makemytrip,但吨这浪费了整个 天。最后我安排了一个新的真正的四星级酒店房租,其中 是卢比。 5500/- 每晚(远低于卢比7211/- 这家酒店预订 通过使我的旅行)。我通知MakeMy之旅于2012年1月28日取消我的 保留和退还我全部money.Also发送邮件给他们在 这regard.I我仍然瓦亭从他们的积极响应,但我 至少有希望获得it.So我现在接近法院让我 会费和compensation.Arvinder

我一直在做字符串匹配的并删除明显的条款,但它有点乏味。如果任何人有一个有效的方式来做到这一点,我真的很有兴趣听到它。

+0

您如何具体定义垃圾邮件? – Randy 2012-04-03 02:41:42

+0

定义“垃圾邮件”是什么?必须有某种算法/标准来表明一行是否被认为是“垃圾邮件”。然后根据该条件删除行。 – 2012-04-03 02:43:08

回答

0

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

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

编辑:另外从你的更新例如,您可以标记为垃圾邮件具有一定的字符长度:

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

根据简单的关键词匹配自动删除而无需人工评估是非常危险的。如果您的电子邮件过滤器会自动删除其中包含“垃圾邮件”一词的电子邮件,您永远不会收到有关新的反垃圾邮件产品的信息:-) – 2012-04-03 02:50:25

+0

对不起,我无法抗拒..这将是一个问题,因为.. ..我不需要任何有关反垃圾邮件产品的垃圾邮件。 – xQbert 2012-04-03 03:16:18

+0

我希望开发人员足够聪明,在运行删除之前先用select语句测试它们的条件。 – 2012-04-03 04:42:56

0

我有我关心的应用程序的一个类似的问题。我将提供垃圾数据的人称为“小丑”,并且正在收集一套识别潜在小丑的规则。初始规则集非常基本(可能类似于您现在拥有的关键字)。随着时间的推移,这套规则已经扩大,这些规则都基于我自己的观察结果和来自同事的提示。

通知我声明,我确定潜在小丑。可能包含小丑数据的表获得可以表示状态“未检查”,“潜在小丑”,“不是小丑”,“是小丑”的状态的IsClown列。我有一个自动的过程来检查所有的新数据。如果该过程符合一个或多个规则,则该条目被标记为“潜在小丑”,并且人员使用简单的UI检查条目,或者将他移动到“不是小丑”或“是小丑”。

这对您是否有用取决于您可以如何定义规则以及考虑的数据量。它适用于我,所以我以为我会分享。