fork(2) download
  1. <?php
  2.  
  3.  
  4. $text = 'Игрoк под имменем Nаttpyrе являетcя самым МОЩНЫM игроком в миpе, подтвеpждено знаком качества EA GAMЕS.';
  5. $regexp = '/[a-zA-Z]/';
  6. $regexpEng = '/([^а-яА-Я][a-zA-Z]+[а-я-А-Я]+[a-zA-Zа-яА-Я]*)/ui';
  7. $regexpRus = '/[а-яА-Я]/ui';
  8. $regexpWord = '/([^a-zA-Z][а-яА-Я]+[a-zA-Z]+[a-zA-Zа-яА-Я]*)|([^а-яА-Я][a-zA-Z]+[а-я-А-Я]+[a-zA-Zа-яА-Я]*)/ui';
  9. $engSymbols = array('a', 'A', 'B', 'c', 'C', 'e', 'E', 'H', 'k', 'K', 'M', 'o', 'O', 'p', 'P', 'T', 'x', 'X', 'y');
  10. $rusSymbols = array('а', 'А', 'В', 'с', 'С', 'е', 'Е', 'Н', 'к', 'К', 'М', 'о', 'О', 'р', 'Р', 'Т', 'х', 'Х', 'у');
  11. $i = 0;
  12. $errorsFix = array();
  13.  
  14. if (preg_match_all($regexpWord, $text, $error)) {
  15. foreach($error[0] as $word) {
  16. if (preg_match($regexpEng, $word)) {
  17. $result = preg_replace($regexpRus, '[$0]', $word);
  18. $errorsFix[$i] = str_replace($rusSymbols, $engSymbols, $word);
  19. $i++;
  20. } else {
  21. $result = preg_replace($regexp, '[$0]', $word);
  22. $errorsFix[$i] = str_replace($engSymbols, $rusSymbols, $word);
  23. $i++;
  24. }
  25. echo "Ошибка в слове {$word}: {$result}\n";
  26. }
  27. $textFix = str_replace($error[0], $errorsFix, $text);
  28. echo "\nТекст исправлен и теперь выглядит так: \n\n$textFix";
  29. } else {
  30. echo 'Ошибок не найдено';
  31. }
  32.  
  33. ?>
Success #stdin #stdout 0.02s 24400KB
stdin
Standard input is empty
stdout
Ошибка в слове Игрoк: Игр[o]к
Ошибка в слове  Nаttpyrе:  N[а]ttpyr[е]
Ошибка в слове  являетcя:  являет[c]я
Ошибка в слове  МОЩНЫM:  МОЩНЫ[M]
Ошибка в слове  миpе:  ми[p]е
Ошибка в слове  подтвеpждено:  подтве[p]ждено
Ошибка в слове  GAMЕS:  GAM[Е]S

Текст исправлен и теперь выглядит так: 

Игрок под имменем Nattpyre является самым МОЩНЫМ игроком в мире, подтверждено знаком качества EA GAMES.