public static function replaceBadWords($str, $badWords)
{
$pattern = '~';
foreach ($badWords as $_w) {
$pattern .= $_w . '|';
}
$pattern = preg_replace('~\|$~', '~i', $pattern);
return preg_replace_callback($pattern, function ($word) {return str_repeat('*',mb_strlen($word[0]));}, $str);
}
$words = array(
'ahole',
'fuck',
'fuc.+'
);
Я пока не нашел.