linkthrow/profanityfilter
Profanity Filter
Profanity Filter takes strings as input and removes any bad curse words that the string might have. It check the string for specific blacklist which must match as a sperate word to be considered as a curse word. If a curse word is found, then it will replace the curse word with a censor character the user chooses (default is *).
Default curse words from Shuttershock list of banned words https://github.com/shutterstock/List-of-Dirty-Naughty-Obscene-and-Otherwise-Bad-Words
This package is intended to used with Laravel. Tested and working with laravel 5.1.
This code is based on Fastwebmedia/Profanity-Filter. A major part of it is taken from there and I added the things that I thought it required.
Install
Via Composer
$ composer require LinkThrow/profanityfilter
###Laravel
Add LinkThrow\ProfanityFilter\ProfanityFilterServiceProvider::class to your providers array.
If you wish to use the Facade then add
'Profanity' => LinkThrow\ProfanityFilter\Facades\Profanity::class
The package will automatically use the config file containing the list of banned words.
Usage
$swear_word = ['dog'];
$blacklist = ['puppy'];
$replace = ['a' => '(a|a\.|a\-|4|@|Á|á|À|Â|à|Â|â|Ä|ä|Ã|ã|Å|å|α|Δ|Λ|λ)'];
$profanity_filter = new LinkThrow\ProfanityFilter($swear_words, $blacklist, $replace);
echo $profanity_filter->clean('Dog, puppy badpuppy baddog!', '$');
The above code would return:
array(
'old_string' => 'Dog, puppy badpuppy baddog!',
'new_string' => '$$$, $$$$$ badpuppy bad$$$!',
'clean' => false
);
Change log
Please see CHANGELOG for more information what has changed recently.
Testing
$ phpspec run
Contributing
Please see CONTRIBUTING and CONDUCT for details.
Security
If you discover any security related issues, please email LinkThrow.shakya@gmail.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.