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