fork download
  1. <?php
  2.  
  3.  
  4. function replaceWord($word, $replacement, $text) {
  5.  
  6. $chars = preg_split('//u', $word, -1, PREG_SPLIT_NO_EMPTY);
  7. $pattern = "";
  8. $rusChars = ['е','у','о','р','х','а','с'];
  9. $rusEngChars = ['(е|e)', '(у|y)', '(о|o)','(р|p)','(х|x)','(а|a)','(с|c)'];
  10.  
  11. foreach ($chars as $char) {
  12. $pattern .= "{$char}\\s?";
  13. }
  14.  
  15. $pattern = str_replace($rusChars, $rusEngChars, $pattern);
  16.  
  17. $result = preg_replace("/{$pattern}/ui", $replacement, $text);
  18. echo $result . "\n";
  19. }
  20.  
  21. replaceWord("дурак", "Хороший человек", "Ты дурaк"); // английская 'a'
  22. replaceWord("дурак", "Хороший человек", "Ты дУрак"); // регистр
  23. replaceWord("дурак", "Хороший человек", "Ты д у р а к"); // с пробелами
  24. replaceWord("дурак", "Хороший человек", "Ты Д у Р а к"); // с пробелами и регистром
Success #stdin #stdout 0.02s 82624KB
stdin
Standard input is empty
stdout
Ты Хороший человек
Ты Хороший человек
Ты Хороший человек
Ты Хороший человек