PHPackages                             antonlukin/php-censure - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. antonlukin/php-censure

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

antonlukin/php-censure
======================

A fork of rin-nas/php-censure with composer.json

v1.4(4mo ago)89.7k2PHPPHP &gt;=5.3.0

Since Aug 21Pushed 4mo agoCompare

[ Source](https://github.com/antonlukin/php-censure)[ Packagist](https://packagist.org/packages/antonlukin/php-censure)[ RSS](/packages/antonlukin-php-censure/feed)WikiDiscussions master Synced 4w ago

READMEChangelogDependenciesVersions (5)Used By (0)

Определение наличия мата (нецензурных слов) в тексте, матотест
==============================================================

[](#определение-наличия-мата-нецензурных-слов-в-тексте-матотест)

- Алгоритм достаточно надёжен и быстр, в т.ч. на больших объёмах данных
- Метод обнаружения мата основывается на корнях и предлогах русского языка, а не на словаре
- Слова "лох", "хер", "залупа", "сука" матерными словами не считаются (см. словарь Даля)
- Разработка ведётся с 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 'Матерное слово не обнаружено'
}
```

### Лицензия

[](#лицензия)

Оригиальный код опубликован под лицензией

###  Health Score

46

—

FairBetter than 92% of packages

Maintenance76

Regular maintenance activity

Popularity28

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity57

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 50% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~804 days

Total

4

Last Release

131d ago

PHP version history (2 changes)v1.0PHP ^5.3 || ^7.0

v1.2PHP &gt;=5.3.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/0ba1a7e56be4dbfc357bf3e19a99dc080b914265bf924580ca645b6cf9ad1a1d?d=identicon)[antonkukin](/maintainers/antonkukin)

---

Top Contributors

[![antonlukin](https://avatars.githubusercontent.com/u/454185?v=4)](https://github.com/antonlukin "antonlukin (3 commits)")[![rin-nas](https://avatars.githubusercontent.com/u/956066?v=4)](https://github.com/rin-nas "rin-nas (3 commits)")

---

Tags

php-censorrussiantext-analysis

### Embed Badge

![Health badge](/badges/antonlukin-php-censure/health.svg)

```
[![Health](https://phpackages.com/badges/antonlukin-php-censure/health.svg)](https://phpackages.com/packages/antonlukin-php-censure)
```

###  Alternatives

[jmosbech/sticky-table-headers

jQuery sticky table headers plugin

9025.4k](/packages/jmosbech-sticky-table-headers)[ackintosh/snidel

A multi-process container. It looks like multi-thread-ish.

1051.2k](/packages/ackintosh-snidel)[jacobemerick/kmeans

k-means clustering implemented in PHP

126.5k](/packages/jacobemerick-kmeans)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
