Делаю замену плохих слов в сообщениях на PHP.
Готового решения не нашел, делаю примерно так:
public static function replaceFuckWords($message)
{
$pattern = '/ahole|ash0le|f u c k|bi.+ch/i'; // здесь сейчас не все слова, список будет большой
return preg_replace($pattern, '*****', $message);
}
То-есть регулярное выражение находит такие слова и меняет на пять звездочек. Все ок.
Но нужно заменять не на пять звездочек (как сейчас), а на количество соответствующее в найденном плохом слове.
Например cipa, нужно заменить на **** (четыре звездочки), а fatass — на ****** (шесть звездочек)
Есть у кого-то готовое решение, или идея как реализовать? Буду благодарен, спасибо.