Задать вопрос
colonel
@colonel
Разработчик PHP, Laravel

Замена плохих слов в сообщении звездочками

Делаю замену плохих слов в сообщениях на PHP.
Готового решения не нашел, делаю примерно так:

    public static function replaceFuckWords($message)
    {
        $pattern = '/ahole|ash0le|f u c k|bi.+ch/i'; // здесь сейчас не все слова, список будет большой
        return preg_replace($pattern, '*****', $message);
    }



То-есть регулярное выражение находит такие слова и меняет на пять звездочек. Все ок.

Но нужно заменять не на пять звездочек (как сейчас), а на количество соответствующее в найденном плохом слове.
Например cipa, нужно заменить на **** (четыре звездочки), а fatass — на ****** (шесть звездочек)

Есть у кого-то готовое решение, или идея как реализовать? Буду благодарен, спасибо.
  • Вопрос задан
  • 5213 просмотров
Подписаться 14 Оценить Комментировать
Ответ пользователя Александр Горский К ответам на вопрос (3)
Например cipa, нужно заменить на **** (четыре звездочки)
Parti****tion.
Внимательнее с паттернами! Помню, как-то раз вылетел из чата при попытке ввести слово «скипидар». Вряд ли ваши пользователи обрадуются подобному повороту событий.
Ответ написан