Skip to content

Instantly share code, notes, and snippets.

@vmrfriz
Last active February 21, 2024 06:18
Show Gist options
  • Save vmrfriz/0c1ffb2d416b008ff9fef3a37728be82 to your computer and use it in GitHub Desktop.
Save vmrfriz/0c1ffb2d416b008ff9fef3a37728be82 to your computer and use it in GitHub Desktop.
Функция для цензурирования матов на русском

Цензурирование мата

Заменяет одну или две буквы в матном слове на звёздочку (*)

Использование

$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;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment