/leo-profanity-php

:tiger: Profanity filter, based on "Shutterstock" dictionary

Primary LanguagePHPMIT LicenseMIT

leo-profanity-php

Latest Version on Packagist Software License Build Status

Profanity filter, based on Shutterstock dictionary

Install

Via Composer

$ composer require jojoee/leo-profanity
use Jojoee\Library\LeoProfanity as LeoProfanity;

$filter = new LeoProfanity();
$filter->check('I have BoOb');

Usage

$filter->getList()

// return all profanity words (string[])
$filter->getList();

$filter->check(string)

Check out mor example on clean method

// output: true
$filter->clean('I have boob');

$filter->clean(string, [replaceKey=*])

// no bad word
// output: I have 2 eyes
$filter->clean('I have 2 eyes');

// normal case
// output: I have ****, etc.
$filter->clean('I have boob, etc.');

// case sensitive
// output: I have ****
$filter->clean('I have BoOb');

// separated by comma and dot
// output: I have ****.
$filter->clean('I have BoOb.');

// multi occurrence
// output: I have ****,****, ***, and etc.
$filter->clean('I have boob,boob, ass, and etc.');

// should not detect unspaced-word
// output: Buy classic watches online
$filter->clean('Buy classic watches online');

// clean with custom replacement-character
// output: I have ++++
$filter->clean('I have boob', '+');

$filter->add(string|string[])

// add word
$filter->add('b00b');

// add word's array
// check duplication automatically
$filter->add(['b00b', 'b@@b']);

$filter->remove(string|string[])

// remove word
$filter->remove('b00b');

// remove word's array
$filter->remove(['b00b', 'b@@b']);

$filter->reset()

Reset word list by using default dictionary (also remove word that manually add)

$filter->clearList()

Clear all profanity words

Note

TODO

  • Unit test
  • Test coverage
  • PHP CodeSniffer
  • Support PHP version 5.6, 7.0, hhvm

Other languages

Contribute

Please run composer check and fix before commit

Reference