我正在使用非常長的查詢來檢測我的用戶用戶名中令人討厭的詞。查找在哪裏以及哪個詞匹配sql LIKE語句
我已經做了一個版主頁面,主持人可以點擊檢測到的用戶名旁邊的按鈕,它將用*替換違規詞。問題是我怎樣才能輕鬆發現哪個冒犯性詞語以及替換的地方?
我想我需要使用一些與LIKE語句完全相同的描述的正則表達式。幫助創建這樣一個正則表達式將被極大地佔用,或者......如果有人有更好的解決方案。
TIA
我正在使用非常長的查詢來檢測我的用戶用戶名中令人討厭的詞。查找在哪裏以及哪個詞匹配sql LIKE語句
我已經做了一個版主頁面,主持人可以點擊檢測到的用戶名旁邊的按鈕,它將用*替換違規詞。問題是我怎樣才能輕鬆發現哪個冒犯性詞語以及替換的地方?
我想我需要使用一些與LIKE語句完全相同的描述的正則表達式。幫助創建這樣一個正則表達式將被極大地佔用,或者......如果有人有更好的解決方案。
TIA
喜歡的東西:
$bad_list = array('foo','barr','ax'); // list of bad words you want to *
$from = array();
$to = array();
foreach($bad_list as $s){
$from[] = '/'.preg_quote($s,'/').'/'; // PHP expects regex in delimiter.
$to[] = str_repeat('*',strlen($s));
}
$str = "afoob";
$str = preg_replace($from,$to,$str); // $str is now a***b
您也可以使用str_replace
,也真的在這裏沒有必要正則表達式。
你可以試試下面的功能在PHP
similar_text()
levenshtein()
soundex()
您只需創建一個簡單的腳本來匹配的話,然後替換那些話,按您的需要。
Clbuttic例子。 – Wrikken 2010-09-09 15:34:03