fork download
  1. <?php
  2.  
  3. // Текст:
  4. $text = <<<EOF
  5. Пocтaвкa Mяco гoвядины,
  6. бecкостнoe для нужд госудаpственного
  7. бюджетного учреждения здравооxpанения
  8. Республики Башкортостан Инфекционная
  9. клиническая больница № 4 города Уфа
  10. EOF
  11. ;
  12.  
  13. // Поиск опечаток и выделение опечаток
  14. $regexp = array(
  15. '/([а-яёА-ЯЁ])([a-zA-Z])/u',
  16. '/([a-zA-Z])([а-яёА-ЯЁ])/u'
  17. );
  18.  
  19. $select = array(
  20. '$1[$2]',
  21. '[$1]$2'
  22. );
  23. // Замена опечаток
  24. $replace = array(
  25. 'a' => 'а',
  26. 'c' => 'с',
  27. 'e' => 'е',
  28. 'o' => 'о'
  29. );
  30.  
  31. // Проверяем текст и выделяем квадратными скобками опечатки
  32. function findAndSelect ($regexp, $select, $text)
  33. {
  34. $textSelected = preg_replace ($regexp, $select, $text, -1, $count);
  35. echo "В тексте допущенo {$count} очепяток:\n{$textSelected}\n\n";
  36. }
  37.  
  38. findAndSelect ($regexp, $select, $text);
  39.  
  40. // Заменяем опечатки
  41. $text = strtr ($text, $replace);
  42. findAndSelect ($regexp, $select, $text); //проверяем не остались ли ошибок
  43. ?>
Success #stdin #stdout 0.02s 52432KB
stdin
Standard input is empty
stdout
В тексте допущенo 13 очепяток:
П[o][c]т[a]вк[a] [M]я[c]o г[o]вядины,
б[e][c]костн[o]e для нужд госуда[p]ственного
бюджетного учреждения здравоо[x][p]анения
Республики Башкортостан Инфекционная
клиническая больница № 4 города Уфа 

В тексте допущенo 4 очепяток:
Поставка [M]ясо говядины,
бескостное для нужд госуда[p]ственного
бюджетного учреждения здравоо[x][p]анения
Республики Башкортостан Инфекционная
клиническая больница № 4 города Уфа