You wrote:
> I've been reading the "Profanity Filter" thread in the list archives
but
> haven't found anything real helpful.  Here's my code so far, this of
course
> won't work.
> <?
> function filterWords($string, &$result) {
>         $badwords="shit, fuck, ass, bitch";
>         $word=explode(", ", $badwords);
>         for ($i=0; $i<count($word); $i++) {
>                 $replace = str_replace("$word[$i]", "****", $string);
>         }
> }
> $string = "Ass monkey";
> filterWords("$string", $result);
> print "$result";
> ?>
>
> How can I scan for the $badwords in $string and replace $badwords with
****?

Why waste your time?  People will find a way around the filters anyway,
if they really want to use the words you're censoring.  Just a point to
be made.

Anyway, here's what I would do:

function filterWords($str){
    $badwords = array("shit", "fuck", "ass", "bitch");
    for($i=0; $i<count($badwords); $i++){
        $str = $eregi_replace("$badwords[$i]", "*****", $str);
    }
    return $str;
}
$str = filterWords("Ass monkey");
print $str; // Prints "***** monkey"

If you want to get really fancy, you can replace the "*****" with some
function calculating just how many asterisks you need to censor out the
current word for its length.  HTH.  :)

--
 -Ryan :: ICQ - 595003 :: GigaBoard - http://www.gigaboard.net/



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to