<?php
$homoglyphs = [
'У' => 'Y',
'К' => 'K',
'Е' => 'E',
'Н' => 'H',
'Х' => 'X',
'В' => 'B',
'А' => 'A',
'Р' => 'P',
'О' => 'O',
'С' => 'C',
'М' => 'M',
'Т' => 'T',
'у' => 'y',
'е' => 'e',
'х' => 'x',
'а' => 'a',
'р' => 'p',
'о' => 'o',
'с' => 'c'
];
$patternDummy = "/\\b%s\\b/ui";
$badWords = ["дурак", "тупица"];
$goodWords = ["молодец", "умница"];
$badText = "Ты дурак. Я - дУ Ра К. Он - дypaк. Она - Тyп и ц A!";
fn
($ch) => isset($homoglyphs[$ch]) ?
"[$ch$homoglyphs[$ch]]" : $ch, mb_toArray($badWord)
))),
$badWords
);
function mb_toArray
(string
$s): array {
return preg_split("//u", $s, null, PREG_SPLIT_NO_EMPTY
); }
PD9waHAKZXJyb3JfcmVwb3J0aW5nKC0xKTsKbWJfaW50ZXJuYWxfZW5jb2RpbmcoJ3V0Zi04Jyk7CgokaG9tb2dseXBocyA9IFsKICAgICfQoycgPT4gJ1knLAogICAgJ9CaJyA9PiAnSycsCiAgICAn0JUnID0+ICdFJywKICAgICfQnScgPT4gJ0gnLAogICAgJ9ClJyA9PiAnWCcsCiAgICAn0JInID0+ICdCJywKICAgICfQkCcgPT4gJ0EnLAogICAgJ9CgJyA9PiAnUCcsCiAgICAn0J4nID0+ICdPJywKICAgICfQoScgPT4gJ0MnLAogICAgJ9CcJyA9PiAnTScsCiAgICAn0KInID0+ICdUJywKICAgICfRgycgPT4gJ3knLAogICAgJ9C1JyA9PiAnZScsCiAgICAn0YUnID0+ICd4JywKICAgICfQsCcgPT4gJ2EnLAogICAgJ9GAJyA9PiAncCcsCiAgICAn0L4nID0+ICdvJywKICAgICfRgScgPT4gJ2MnCl07CiRwYXR0ZXJuRHVtbXkgPSAiL1xcYiVzXFxiL3VpIjsKJGJhZFdvcmRzID0gWyLQtNGD0YDQsNC6IiwgItGC0YPQv9C40YbQsCJdOwokZ29vZFdvcmRzID0gWyLQvNC+0LvQvtC00LXRhiIsICLRg9C80L3QuNGG0LAiXTsKJGJhZFRleHQgPSAi0KLRiyDQtNGD0YDQsNC6LiDQryAtINC00KMg0KDQsCDQmi4g0J7QvSAtINC0eXBh0LouINCe0L3QsCAtINCiedC/INC4INGGIEEhIjsKCiRwYXR0ZXJucyA9IGFycmF5X21hcCgKICAgIGZuKCRiYWRXb3JkKSA9PiBzcHJpbnRmKCRwYXR0ZXJuRHVtbXksIGltcGxvZGUoIlxzKiIsIGFycmF5X21hcCgKICAgICAgICBmbigkY2gpID0+IGlzc2V0KCRob21vZ2x5cGhzWyRjaF0pID8gIlskY2gkaG9tb2dseXBoc1skY2hdXSIgOiAkY2gsCiAgICAgICAgbWJfdG9BcnJheSgkYmFkV29yZCkKICAgICkpKSwKICAgICRiYWRXb3JkcwopOwoKZWNobyBwcmVnX3JlcGxhY2UoJHBhdHRlcm5zLCAkZ29vZFdvcmRzLCAkYmFkVGV4dCk7CgpmdW5jdGlvbiBtYl90b0FycmF5KHN0cmluZyAkcyk6IGFycmF5CnsKICAgIHJldHVybiBwcmVnX3NwbGl0KCIvL3UiLCAkcywgbnVsbCwgUFJFR19TUExJVF9OT19FTVBUWSk7Cn0K