2012-04-03 107 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檢查條目,或者將他移動到「不是小丑」或「是小丑」。

這對您是否有用取決於您可以如何定義規則以及考慮的數據量。它適用於我,所以我以爲我會分享。