Заменяет одну или две буквы в матном слове на звёздочку (*)
$censor_string = censor_text($string_with_bad_words);| <?php | |
| /** | |
| * Цензурирование матерных слов | |
| * | |
| * @param string $text | |
| * | |
| * @return string | |
| */ | |
| function censor_text(string $text): string | |
| { | |
| $replaces = [ | |
| '/[хx][уy]й\b/ui' => 'х*й', | |
| '/[хx][уy]я/ui' => 'х*я', | |
| '/[хx][уy][eе]([hнbв])/ui' => 'х*е$1', | |
| '/[xх][yу]ю/ui' => 'х*ю', | |
| '/\bбля[tт]ь\b/ui' => 'бл*ть', | |
| '/[hн][еe][xх][yу]/ui' => 'нех*', | |
| '/минет/ui' => 'минут', | |
| '/п[oо][pр][hн]/ui' => 'п*рн', | |
| '/п[oо][pр][hн][yу]/ui' => 'п*рн*', | |
| '/[oо][xх][yу][eе]/ui' => 'ох*е', | |
| '/г[oо][bв][hн][oо]/ui' => 'г*вно', | |
| '/[yу][eеё]б/ui' => 'у*б', | |
| '/[aа][xх][уу][eе][hн]/ui' => 'ах*ен', | |
| '/[aа][xх][уу][eе][tт]/ui' => 'ах*ет', | |
| '/[3з][aа][eе]б/ui' => 'за*б', | |
| '/[xх][yу]и[tт]/ui' => 'ох**т', | |
| '/[xх][yу]йн/ui' => 'х*йн', | |
| '/[eеё]б[aа]л/ui' => 'еб*л', | |
| '/[eеё]б[aа][hн]+а/ui' => 'еб*на', | |
| '/[eеё]б[aа][hн]+ы/ui' => 'еб*ны', | |
| '/[eеё]би[hн][aа]/ui' => 'еб*на', | |
| '/[eеё]би[aа][pр]/ui' => '*б*р', | |
| '/[eе]б[oо][kк]\b/ui' => '*бок', | |
| '/[eе]бли/ui' => '*бли', | |
| '/[yу][eе]б[aа][hн]/ui' => 'у*б*н', | |
| '/[yу][eеё]б[kк]/ui' => 'у*бк', | |
| '/[yу][eеё]бищ/ui' => 'у*б*щ', | |
| '/[eе]би[cс][ъь]/ui' => 'е*ись', | |
| '/\bбля+\b/ui' => 'б*я', | |
| '/\bбля[tт]\b/ui' => 'б*ят', | |
| '/бля[tт][cс][kк]/ui' => 'б**тск', | |
| '/бляд/ui' => 'б*яд', | |
| '/пи[3з]д[aаeеёyуияы]/ui' => 'п*зд*', | |
| '/пид[aаoо][pр]/ui' => 'п*д*р', | |
| '/г[aаoо][hн]д[aаoо]/ui' => 'г*нд*', | |
| '/\b[eеё]([пб])т/ui' => '*$1т', | |
| '/[cс][oо][cс]и\b/ui' => 'с*си', | |
| '/[cс][yу][kк]([aаи])/ui' => 'с*ка', | |
| '/[cс][eе][kк][cс]\b/ui' => 'с*кс', | |
| '/пи[3з]д/ui' => 'пи*д', | |
| '/[3з][aа]л[yу]п/ui' => 'з*луп', | |
| ]; | |
| $text = preg_replace(array_keys($replaces), array_values($replaces), $text); | |
| // $text = str_replace(array_keys($replaces), array_values($replaces), $text); | |
| return $text; | |
| } |