krugozor/russian-bad-words
Composer 安装命令:
composer require krugozor/russian-bad-words
包简介
Словарь и валидация плохих русских слов для PHP
关键字:
README 文档
README
Что это и для чего?
Пакет предоставляет два типа словарей для валидации пользовательского контента:
-
StopWordsValidator - проверяет на наличие стоп-слов, которые могут привести к блокировке Роскомнадзором:
- Запрещённые товары (электроудочки, наркотические вещества)
- Нежелательные услуги (гадания, эскорт-услуги, кредиты)
- Другие проблемные категории
-
ProfanityWordsValidator - проверяет на ненормативную лексику (матерные слова)
Словарь предназначен для веб-мастеров, которе обслуживают информационные системы, контент которых наполняют пользователи - доски объявлений, форумы, функционал комментариев.
Особенности:
- Структурированные PHP-массивы для удобного редактирования
- Регулярно обновляется на основе реальных случаев блокировок
- Поддержка расширения и модификации
Установка
1. Добавьте/измените данные в секции scripts и autoload в composer.json вашего проекта:
{
"scripts": {
"post-install-cmd": [
"Krugozor\\RussianBadWords\\Installer::postInstall"
],
"post-update-cmd": [
"Krugozor\\RussianBadWords\\Installer::postInstall"
],
"pre-package-uninstall": [
"Krugozor\\RussianBadWords\\Installer::preUninstall"
]
},
"autoload": {
"psr-4": {
"Krugozor\\RussianBadWords\\Items\\": "dictionaries"
}
}
}
2. Установите пакет
composer require krugozor/russian-bad-words
3. Проверьте установку
После установки в корне вашего проекта появится папка dictionaries с файлами:
ProfanityWordsValidator.php- Словарь ненормативной лексикиStopWordsValidator.php- Словарь стоп-слов
ВАЖНО: Редактор PhpStorm иногда не видит только что созданную директорию dictionaries.
Смотрите факт её создания в проводнике.
Использование
Пример валидации текста:
<?php // Подключите '/vendor/autoload.php' use Krugozor\RussianBadWords\Items\ProfanityWordsValidator; use Krugozor\RussianBadWords\Items\StopWordsValidator; // Проверка сообщения от пользователя. // В слове "электрo-фишер" кириллическая буква "о" заменена на латинскую, // а слова умышленно соединены различными символами с целью обмана программы. // В слове "сукa" кириллическая буква "a" заменена на латинскую. $message = 'Продам_электрo-фишер.fisher-f-3500 не дорого! Ну и немного нембутала, сукa'; $validator = new StopWordsValidator($message); if (!$validator->validate()) { echo "Текст не проходит валидацию! Плохие слова:\n"; print_r($validator->getFailedWords()); } $validator = new ProfanityWordsValidator($message); if (!$validator->validate()) { echo "Текст не проходит валидацию! Ненормативная лексика:\n"; print_r($validator->getFailedWords()); }
Результат:
Текст не проходит валидацию! Плохие слова:
Array
(
[1] => электрo-фишер
[2] => fisher-f-3500
[9] => нембутала
)
Текст не проходит валидацию! Ненормативная лексика:
Array
(
[11] => сукa
)
Класс определяет слова, в которых русские буквы заменены на визуально похожие английские (например: «с» → «c», «а» → «a», «к» → «k»).
Пример работы для проверки слова "сок" - будут сгенерированы следующие варианты слов для проверки:
- сoк (английская
oвместо русскойо) - cок (английская
cвместо русскойс) - соk (английская
kвместо русскойк) - cok (все буквы английского алфавита)
Данный подход позволяет системе выявлять запрещённые слова, даже если в них часть букв была заменена на схожие по начертанию английские символы.
Обновление словарей и пакета
composer update krugozor/russian-bad-words
Принцип работы резервных копий
При обновлении пакета система автоматически создает резервные копии измененных файлов словарей по следующему алгоритму:
graph TD
A[Начало обновления пакета] --> B{Файл словаря изменился?}
B -->|Да| C[Создать резервную копию]
B -->|Нет| D[Пропустить файл]
C --> E[Обновить файл словаря]
D --> F[Завершение обработки]
E --> F
Loading
Основные правила
- Создание резервных копий происходит ТОЛЬКО при:
- Наличии существующего файла словаря
- Отличии содержимого нового файла от текущег
- Формат имени резервного файла
ГГГГ-ММ-ДД_ЧЧММСС_ИмяФайла.php- Пример:
2025-08-08_153045_StopWordsValidator.php
- Пример:
- Расположение
- Все резервные копии сохраняются в папке
dictionaries
- Все резервные копии сохраняются в папке
Пример сценария
До обновления:
dictionaries/
├── StopWordsValidator.php (ваша версия)
└── ProfanityWordsValidator.php (версия из репозитория)
После обновления:
dictionaries/
├── StopWordsValidator.php (версия из репозитория)
├── 2025-08-08_153045_StopWordsValidator.php (ваша старая версия)
└── ProfanityWordsValidator.php (версия из репозитория)
Управление резервными копиями
# Просмотр резервных копий ls dictionaries/*_*.php # Восстановление из резервной копии cp dictionaries/2025-08-08_153045_StopWordsValidator.php dictionaries/StopWordsValidator.php
Важно: Система никогда не удаляет резервные копии автоматически
Добавление своих слов
Откройте нужный файл словаря и добавьте слова в массив:
// dictionaries/StopWordsValidator.php return [ // ... 'электроудочка', 'наркотик', 'гадалка', // Добавьте свои слова здесь 'новоезапрещенноеслово', 'другоенедопустимоеслово', ];
Но лучше сделайте Merge request, если добавляете общеизвестные и частоупотребимые слова.
Удаление пакета
composer remove krugozor/russian-bad-words
При удалении файлы словарей остаются в вашем проекте.
krugozor/russian-bad-words 适用场景与选型建议
krugozor/russian-bad-words 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 102 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 08 月 07 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「bad words」 「Profanity Filter」 「text filtering」 「content moderation」 「russian bad words」 「словар�」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 krugozor/russian-bad-words 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 krugozor/russian-bad-words 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 krugozor/russian-bad-words 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
PHP Bad words filtering. Checks for existence of bad word in a string but checks too an alone word or among the string
Validators for Symfony2
A Laravel Validation Rule to Help Catch Profanity.
Laravel Profanity Filter - Powerful PHP package for detecting, filtering, and masking profanity in multiple languages. Supports leet speak, custom word lists, case sensitivity, and seamless Laravel integration.
A Laravel package to find and remove profanity from text strings.
Stop-Words via PHP
统计信息
- 总下载量: 102
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 26
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Unknown
- 更新时间: 2025-08-07