On Wednesday 13 September 2006 11:51, Beauford wrote: > 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; > } This website answered a lot of my questions about the same situation. I tested it on my development environment, and it worked just fine. http://www.php-mag.net/magphpde/magphpde_article/psecom,id,637,nodeid,21.html -- Ray Hauge Programmer/Systems Administrator American Student Loan Services www.americanstudentloan.com 1.800.575.1099 -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php