查找在哪里以及哪个词匹配sql LIKE语句
问题描述:
我正在使用非常长的查询来检测我的用户用户名中令人讨厌的词。查找在哪里以及哪个词匹配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