fork download
  1. <?php
  2.  
  3. function checkText($text, $patternRus, $patternEng){
  4. if ((preg_match($patternRus, $text)) || (preg_match($patternEng, $text))){
  5. return "В тексте есть заменённые буквы.\n";
  6. } else {
  7. return "В тексте нет заменённых букв.\n";
  8. }
  9. }
  10.  
  11. function showHighlightedText($text, $patternRus, $patternEng){
  12. $array = explode (" ", $text);
  13. foreach ($array as $word){
  14. if (preg_match('/^[а-яё]/ui', $word)){
  15. $highlights = preg_replace($patternRus, "$1[$2]", $word);
  16. echo "{$highlights} ";
  17. }
  18. if (preg_match('/^[a-z]/ui', $word)){
  19. $highlights = preg_replace($patternEng, "$1[$2]", $word);
  20. echo "{$highlights} ";
  21. }
  22. }
  23. echo "\n";
  24. }
  25.  
  26. function correctText($text){
  27. $replacementRus = [
  28. 'a' => 'а',
  29. 'A' => 'А',
  30. 'B' => 'В',
  31. 'C' => 'С',
  32. 'c' => 'с',
  33. 'e' => 'е',
  34. 'E' => 'Е',
  35. 'H' => 'Н',
  36. 'K' => 'К',
  37. 'M' => 'М',
  38. 'o' => 'о',
  39. 'O' => 'О',
  40. 'p' => 'р',
  41. 'P' => 'Р',
  42. 'T' => 'Т',
  43. 'x' => 'х',
  44. 'X' => 'Х',
  45. 'y' => 'у'];
  46. $replacementEng = array_flip($replacementRus);
  47. $array = explode (" ", $text);
  48. $correctedArr = [];
  49. foreach ($array as $word){
  50. if (preg_match('/^[а-яё]/ui', $word)){ //упростил проверку языка
  51. $word = strtr($word, $replacementRus);
  52. }
  53. if (preg_match('/^[a-z]/ui', $word)){
  54. $word = strtr($word, $replacementEng);
  55. }
  56. array_push($correctedArr, $word);
  57. }
  58. $correctedStr = implode(' ', $correctedArr);
  59. return $correctedStr;
  60. }
  61.  
  62. $text = "выпoлнение рабoт по комплекснoму благоустрoйству двoрoвой территoрии по адресу: ул.Kурьянoва д.2 к.2 tеrritоry батapeя st.Аnger, ПPИBET";
  63.  
  64. $patternRus = '/([а-яё]+[.,;?!]*)([a-z]+)/ui';
  65. $patternEng = '/([a-z]+[.,;?!]*)([а-яё]+)/ui';
  66.  
  67. echo "##Исходный текст##\n";
  68. echo checkText($text, $patternRus, $patternEng);
  69. showHighlightedText($text, $patternRus, $patternEng);
  70.  
  71. $correctedText = correctText($text);
  72.  
  73. echo "##Исправленный текст##<\n";
  74. echo checkText($correctedText, $patternRus, $patternEng);
  75. showHighlightedText($correctedText, $patternRus, $patternEng);
  76. ?>
Success #stdin #stdout 0.02s 52432KB
stdin
Standard input is empty
stdout
##Исходный текст##
В тексте есть заменённые буквы.
вып[o]лнение раб[o]т по комплексн[o]му благоустр[o]йству дв[o]р[o]вой террит[o]рии по адресу: ул.[K]урьян[o]ва д.2 к.2 t[е]rrit[о]ry бат[ape]я st.[А]nger, П[P]И[BET] 
##Исправленный текст##<
В тексте нет заменённых букв.
выполнение работ по комплексному благоустройству дворовой территории по адресу: ул.Курьянова д.2 к.2 territory батарея st.Anger, ПРИВЕТ