我有一個可以去除褻瀆詞的工作函數。str_replace匹配後跟空格或特殊字符
單詞列表由1700個壞詞組成。
我的問題是,它審查
'BADWORDS'
但不
'BADWORDS。' ,'壞詞'等。
如果我選擇後
$ BADWORD [$關鍵] = $字以除去空間;
代替
$ BADWORD [$關鍵] = $字「。「;
那麼我將有一個更大的問題,因爲如果不好的話是CON那麼它會剝奪一個字恆
我的問題是,我怎麼能剝奪一個字,接着除特殊字符空間?
badword。 badword#badword,
。
function badWordFilter($data)
{
$wordlist = file_get_contents("badwordsnew.txt");
$words = explode(",", $wordlist);
$badword = array();
$replacementword = array();
foreach ($words as $key => $word)
{
$badword[$key] = $word." ";
$replacementword[$key] = addStars($word);
}
return str_ireplace($badword,$replacementword,$data);
}
function addStars($word)
{
$length = strlen($word);
return "*" . substr($word, 1, 1) . str_repeat("*", $length - 2)." " ;
}
你不想使用正則表達式嗎? – splash58
@ splash58只要它能工作,我就可以用它:) –
preg_replace()..它的工作爲你嘗試這個.. –