Preg_replace whole word only

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("\
", fread($strtofile, filesize($bad_word_file)));
	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;