cesarcesar Posted March 12, 2010 Share Posted March 12, 2010 Im trying to make a naughty word filter. It removes bad words fine, but instances where there is a bad word found in the text like "assist" and "asses" get caught in the filter as well. Strangely though if the sentence is: My asses to assist me." the clean version will read: My asses to ***ist me." It seems to clear the first use of the word in another word, but then blocks the rest. Any ideas? My script is below. Thanks. function cleanWords($value) { /* strip naughty words */ $bad_word_file = 'standards/badwords.txt'; $strtofile = fopen($bad_word_file, "r"); $badwords = explode("\n", fread($strtofile, filesize($bad_word_file))); fclose($strtofile); for ($i = 0; $i < count($badwords); $i++) { $wordlist .= str_replace(chr(13),'',$badwords[$i]).'|'; } $wordlist = substr($wordlist,0,-1); $value = preg_replace("/\b($wordlist)\b/ie", 'preg_replace("/./","*","\\1")', $value); return $value; } Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.