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

Php 从MySQL数据库表中删除垃圾邮件,php,mysql,spam,Php,Mysql,Spam,我目前正在开发一个我继承的PHP网站。它包括一个评论功能,当前的评论数据库中有一堆垃圾评论,所有者希望删除这些评论 垃圾邮件评论通常包括我目前正在匹配和删除的原始HTML或BBCode URL(评论不允许使用/呈现HTML)、带有典型关键字(免费、购买、优惠券、贷款、cialis、伟哥等)的评论和名称,以及随机无意义,例如: 他们将与酒店进行交叉核对。经过长时间的商议后,她离开了 说负责预订的比松已经离开了酒店的工作 现在我可以得到另一家旅馆了。我特意预订了这个 付了这么多钱后就在海滩上的酒店,

我目前正在开发一个我继承的PHP网站。它包括一个评论功能,当前的评论数据库中有一堆垃圾评论,所有者希望删除这些评论

垃圾邮件评论通常包括我目前正在匹配和删除的原始HTML或BBCode URL(评论不允许使用/呈现HTML)、带有典型关键字(免费、购买、优惠券、贷款、cialis、伟哥等)的评论和名称,以及随机无意义,例如:

他们将与酒店进行交叉核对。经过长时间的商议后,她离开了 说负责预订的比松已经离开了酒店的工作 现在我可以得到另一家旅馆了。我特意预订了这个 付了这么多钱后就在海滩上的酒店,但我 在潘吉姆市提供一家备用酒店,从何处到达 去海滩大约需要45-60分钟,也是停留的乐趣 在海滩上,我的家人都迷路了。不管怎样,我都做出了妥协 在潘吉姆的新酒店安顿下来。但在28日,当我入住新酒店时 皇家公园海滩度假村看到所谓的3号州,我惊呆了 星级酒店。这家酒店离所提到的地位不远 卖包裹。酒店的质量很差。更好 将一家三等低标准小镇客栈与挖出来的相匹配 入口、装修便宜的接待区、臭气熏天的房间& 浴室,烧毁的窗帘,劣质家具,正在进行的下一步建设 我的房间,破旧的浴室设备,肮脏的地板,肮脏和潮湿 床单和总体感觉不好。[我有所有照片的证据] 立即通知我的旅行“酒店的状态和需要” 另一家旅馆却让我去旅行,不停地叫我等,他们 我会调查的,因为我的孩子生病了,急需休息 我别无选择,只能在这家旅馆登记入住。同时我继续往前走 给Makemytrip打了几个小时的电话,但是没有用。这浪费了整整一个小时 最后我安排了一个新的真正的四星级酒店房间的租金 该酒店的预订量为每晚5500卢比(远低于7211卢比) 我于2012年1月28日通知MakeMy trip取消我的旅行 预订并退还我所有的钱。还发了一封邮件给他们 在这方面,我仍在等待他们的积极回应,但我确实如此 最不可能拿到的。所以现在我要去法院拿我的护照 会费和赔偿,阿文德


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

因为你还没有定义你的垃圾邮件包含/是什么,所以很难给出一个更具体的例子,但是我会考虑使用一个正则表达式来匹配数据中的特定关键字和模式

DELETE FROM `table` WHERE `field` REGEXP 'vigra|spam|example'
编辑:同样根据更新的示例,您可以将垃圾邮件标记为具有特定字符长度:

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

我关心的一个应用程序也有类似的问题。我将提供垃圾数据的人称为“小丑”,并正在收集一套识别潜在小丑的规则。最初的规则集非常基本(可能与现在的关键字类似)。这套规则随着时间的推移而不断扩大,既基于我自己的观察,也基于同事的提示

请注意,我声明我确定了潜在的小丑。可能包含小丑数据的表将显示一列,该列可以表示状态“未选中”、“潜在小丑”、“非小丑”、“是小丑”。我有一个自动的过程来检查所有的新数据。如果该过程匹配一个或多个规则,则该条目将被标记为“潜在小丑”,并且人员使用简单的UI检查条目,将状态移动到“不是小丑”或“是小丑”


这是否适用于您取决于规则的定义程度以及您考虑的数据量。它适合我,所以我想我会与大家分享。

你如何具体定义垃圾邮件?定义什么是“垃圾邮件”?必须有某种算法/标准来指示行是否被视为“垃圾邮件”。然后根据该条件删除行。基于简单的关键字匹配自动删除而无需人工审核是非常危险的。如果您的电子邮件过滤器会自动删除带有“垃圾邮件”字样的电子邮件,您将永远不会收到有关新的反垃圾邮件产品的信息:-)抱歉,我无法抗拒。。这将是一个问题,因为。。。。我不需要关于反垃圾邮件产品的垃圾邮件。我希望开发人员足够聪明,在运行delete之前,先用select语句测试他们的where条件。