pavelforever/php-censure

该软件包最新版本(dev-master)没有可用的许可证信息。

antonlukin/php-censure 的分支,并进行了一些更新

dev-master 2023-03-21 19:17 UTC

This package is not auto-updated.

Last update: 2024-09-19 19:09:08 UTC


README

  • 算法足够可靠且速度快,尤其是在大数据量情况下
  • 检测脏话的方法基于俄语的词根和介词,而不是词汇表
  • “洛赫”、“赫”、“залупа”、“сука”等词不被视为脏话(参见达尔词典)
  • 自2005年起开始开发
  • 根据俄罗斯联邦行政违法法典第20.1条,在公共场所(互联网为公共场所)使用粗话被视为轻微的流氓行为,对此将处以行政责任——罚款五百至一千卢布或行政拘留十五日以内。

安装

composer require pavelforever/php-censure

使用示例

需要调用 Censure\Censure 类的 parse 方法,并传入参数

* @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 'Матерное слово не обнаружено'
}

许可证

原始代码以CC BY-SA 3.0 许可证发布