Заменяет одну или две буквы в матном слове на звёздочку (*)
$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; | |
} |