fork(2) download
  1. <?php
  2.  
  3. $text = "Кaнцелярских тoваров на сумму oколо 100500 руб.";
  4.  
  5. $regexp = '/([а-яё]+)?([a-z]+)([а-яё]+)?/ui';
  6. $matches = [];
  7.  
  8. if (preg_match_all($regexp, $text, $matches) > 0) {
  9. foreach ($matches[0] as $mistake) {
  10. $result = preg_replace($regexp, '$1[$2]$3', $mistake);
  11. echo "опечатка: {$mistake} - $result\n";
  12.  
  13. }
  14. }
  15. $correct = array(
  16. 'a' => 'а',
  17. 'o' => 'о',
  18. 'p' => 'р',
  19. 'x' => 'х',
  20. 'A' => 'А',
  21. 'O' => 'О',
  22. 'P' => 'Р',
  23. 'X' => 'Х'
  24. );
  25. $correctText = strtr($text, $correct);
  26. echo "Исправленный текст\n{$correctText}\n";
  27.  
  28.  
  29.  
Success #stdin #stdout 0s 82624KB
stdin
Standard input is empty
stdout
опечатка: Кaнцелярских - К[a]нцелярских
опечатка: тoваров - т[o]варов
опечатка: oколо - [o]коло
Исправленный текст
Канцелярских товаров на сумму около 100500 руб.