antonlukin / php-censure
There is no license information available for the latest version (v1.3) of this package.
A fork of rin-nas/php-censure with composer.json
v1.3
2019-08-21 13:34 UTC
Requires
- php: >=5.3.0
This package is auto-updated.
Last update: 2024-12-22 01:48:11 UTC
README
- Алгоритм достаточно надёжен и быстр, в т.ч. на больших объёмах данных
- Метод обнаружения мата основывается на корнях и предлогах русского языка, а не на словаре
- Слова "лох", "хер", "залупа", "сука" матерными словами не считаются (см. словарь Даля)
- Разработка ведётся с 2005 года
- Согласно статье 20.1 КоАП РФ нецензурная брань в общественных местах (интернет — место общественное) расценивается как мелкое хулиганство, за что установлена административная ответственность — наложение штрафа в размере от пятисот до одной тысячи рублей или административный арест на срок до пятнадцати суток.
Установка
composer require antonlukin/php-censure
Пример использования
Необходимо вызвать метод parse
класса Censure\Censure
с параметрами:
* @param string $s строка для проверки
* @param string $delta ширина найденного фрагмента в словах
* (кол-во слов от матного слова слева и справа, максимально 10)
* @param string $continue строка, которая будет вставлена в начале и в конце фрагмента
* @param bool $is_html расценивать строку как HTML код?
* в режиме $is_html === TRUE html код игнорируется, а html сущности заменяются в "чистый" UTF-8
* @param string|null $replace строка, на которую заменять матный фрагмент, например: '[ой]' ($replace д.б. в кодировке $charset)
* @param string $charset кодировка символов (родная кодировка -- UTF-8, для других будет прозрачное перекодирование)
Результатом будет либо замененный фрагмент матерного текста, либо false
Если $replace === NULL, то возвращает FALSE, если мат не обнаружен, иначе фрагмент текста с матерным словом.
Если $replace !== NULL, то возвращает исходную строку, где фрагменты мата заменены на $replace.
В случае возникновения ошибки возвращает код ошибки > 0 (integer):
* PREG_INTERNAL_ERROR
* PREG_BACKTRACK_LIMIT_ERROR (see also pcre.backtrack_limit)
* PREG_RECURSION_LIMIT_ERROR (see also pcre.recursion_limit)
* PREG_BAD_UTF8_ERROR
* PREG_BAD_UTF8_OFFSET_ERROR (since PHP 5.3.0)
Или -1, если ReflectionTypeHint вернул ошибку
require __DIR__ . '/vendor/autoload.php'; $test = Censure\Censure::parse("хуй пизда"); if ($test === false) { echo 'Матерное слово не обнаружено' }
Лицензия
Оригиальный код опубликован под лицензией http://creativecommons.org/licenses/by-sa/3.0/