fork(1) download
  1. <?php
  2.  
  3. $homoglyphs = [
  4. 'У' => 'Y',
  5. 'К' => 'K',
  6. 'Е' => 'E',
  7. 'Н' => 'H',
  8. 'Х' => 'X',
  9. 'В' => 'B',
  10. 'А' => 'A',
  11. 'Р' => 'P',
  12. 'О' => 'O',
  13. 'С' => 'C',
  14. 'М' => 'M',
  15. 'Т' => 'T',
  16. 'у' => 'y',
  17. 'е' => 'e',
  18. 'х' => 'x',
  19. 'а' => 'a',
  20. 'р' => 'p',
  21. 'о' => 'o',
  22. 'с' => 'c'
  23. ];
  24. $patternDummy = "/\\b%s\\b/ui";
  25. $badWords = ["дурак", "тупица"];
  26. $goodWords = ["молодец", "умница"];
  27. $badText = "Ты дурак. Я - дУ Ра К. Он - дypaк. Она - Тyп и ц A!";
  28.  
  29. $patterns = array_map(
  30. fn($badWord) => sprintf($patternDummy, implode("\s*", array_map(
  31. fn($ch) => isset($homoglyphs[$ch]) ? "[$ch$homoglyphs[$ch]]" : $ch,
  32. mb_toArray($badWord)
  33. ))),
  34. $badWords
  35. );
  36.  
  37. echo preg_replace($patterns, $goodWords, $badText);
  38.  
  39. function mb_toArray(string $s): array
  40. {
  41. return preg_split("//u", $s, null, PREG_SPLIT_NO_EMPTY);
  42. }
  43.  
Runtime error #stdin #stdout #stderr 0.02s 26104KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
PHP Parse error:  syntax error, unexpected '=>' (T_DOUBLE_ARROW), expecting ')' in /home/I8gO8P/prog.php on line 32