PHP code example of szymanski-luk / polish-profanity-filter

1. Go to this page and download the library: Download szymanski-luk/polish-profanity-filter library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

szymanski-luk / polish-profanity-filter example snippets


use PolishProfanityFilter\PolishProfanityFilter;

$filter = new PolishProfanityFilter();

$filter->containsProfanity('To jest kurwa test.'); // true

$matches = $filter->findProfanities('To jest kurwa test.'); // MatchCollection object

foreach ($matches as $match) {
    echo $match->word;
    echo $match->start;
    echo $match->end;
}

word: 'kurwa'
start: 8
end: 13

$filter->maskProfanities('To jest kurwa test.'); // To jest k***a test.

class CustomMasker implements MaskerInterface
{
    public function mask(string $word): string
    {
        $length = mb_strlen($word);
    
        return str_repeat('*', $length)
    }
}

$filter = new PolishProfanityFilter(masker: new CustomMasker());

class AdditionalDictionaryProvider implements DictionaryProviderInterface
{
    public function getDictionary(): array
    {
        return ['word1', 'word2'];
    }
}

$filter = new PolishProfanityFilter(additionalDictionaryProviders: [new AdditionalDictionaryProvider()]);

$filter = new PolishProfanityFilter(defaultDictionaryProvider: new AdditionalDictionaryProvider());

class CustomSearchPattern implements SearchPatternInterface
{
    public function buildPattern(string $word): string
    {
        return '/(?<![\p{L}\p{N}_])' . preg_quote($word, '/') . '(?![\p{L}\p{N}_])/iu';
    }
}

$filter = new PolishProfanityFilter(searchPattern: new CustomSearchPattern());