Re: Swear filter ideas

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Richard Davey wrote:
> Hi all,
> 
> Just wanting to pick your collective brains on this one:
> 
> How do you go about implementing a swear / bad-word filter in PHP?
> 
> Reasons for needing one aside, I'm just wondering if you favour a
> regexp, a substr_count, or what? Do you like to *** out the bad words,
> or just error back to the user? (I guess that is application
> specific).
> 
> There are always ways to circumvent them, but I'm still curious to
> know how you prefer to handle it.

We implemented a simple key => value array map of rude words to
"sanitised" equivalents:

e.g. breast => sandwich, felch => retrieve etc. etc.

Then we used implode to generate a regexp:

  $new = ' '.$strBadWordsWrittenByEvilUser.' ';
  $gStopRegexp = '('.implode('|',array("\n","\r",'
',',','\.',';',':','-','\!',"'",'"')).')';
  foreach ($gNaughtyWords as $naughty=>$nice)
  {
    $regexp = $gStopRegexp.'('.$naughty.')([s]{0,1})'.$gStopRegexp;
    $regexp_rep = '\1'.$nice.'\3\4';
    $new = mb_eregi_replace($regexp, $regexp_rep, $new);
  }

  return trim($new);


The added bonus is that you can flip the key/values in your array and
turn perfectly nice sentences into torrents of abuse ;)


It's not perfect but it works for the most part. And it's fun to think
of all the rude words people might use!!

HTH

Col

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux