我正在尋找建立在PHP中使用正則表達式的留言板的智能審查。基本上,我有一個數組中的壞詞(在正則表達式中)以及替代用於每個。我檢測字母之間的空格,以防止繞過檢查員,但我掛在某人身上,其中有任何由HTML標記包裹的壞字。所以,如果「狗屎」被阻止,我可以用任何數量的空格來捕捉「我的」,但是如果有人做了sh<b>i</b>t
(我用粗體標記包裹),它就會通過。這顯然不可能發生,所以我被困在這裏。PHP /正則表達式的智能審查
這是我到目前爲止有:
$bad_words = array('/s\s*h\s*i\s*t/i'=>'s***');
$new_string = preg_replace(array_keys($bad_words), array_values($bad_words), $string);
return $new_string;
我已經用strip_tags(以爲包裝$字符串),但由於帖子內容的剩餘部分(不只是受到追捧的不好的話)可以包含HTML,這將在返回時破壞整個留言板帖子。任何幫助或提供的見解將不勝感激!
不要去想這個正則表達式中的條款,直到你可以定義規則英語。你究竟會處理哪些案件?用一個字母代替我的字母是什麼?要麼 !爲我? $ S如何?字母間的標點符號如M * A * S * H?用英文寫出來,然後你可以考慮代碼。 – 2015-02-10 21:26:04