Question on explode and join.

From: Date: Wed, 13 Sep 2006 16:51:12 +0000
Subject: Question on explode and join.
Groups: php.general 
Request: Send a blank email to php-general+get-241734@lists.php.net to get a copy of this message
Hi, I have a form which I want to check for inappropriate words before it is posted. I have used explode to put the string into an array using a space as the delimiter and then I check it against another array that contains the inappropriate words. I then replace the inappropriate words with *'s and join the array back into a string. This works perfectly except for one thing. If the word in the string has a any kind of punctuation after it (period, comma) it won't be matched. So if moron is an inappropriate word then "you are a moron" works, but "you are a moron." won't. Any ideas? Thanks This is my code. function badwords($string) { $language = array(contains the inappropriate words); $words = explode(" ",$string); $count = count(explode(" ", $string)); for($i = 0; $i < $count; $i++) { if(in_array(strtolower($words[$i]), $language)) { $words[$i] = "*****"; } } $newcomments = join(" ",$words); return $newcomments; }

« previous php.general (#241734) next »