fork(1) download
  1. <?php
  2.  
  3.  
  4. $text = "Пocтaвкa мяco гoвядины, Sаmsung, бecкостнoe для нужд государственного бюджетного учреждения здравоохранения Республики Башкортостан Инфекционная клиническая больница № 4 города Уфа " ;
  5. $regexpRus = '/(?<!\\w)[а-я]+[a-z]+\\w*/ui';
  6. $regexpLat = '/(?<!\\w)[a-z]+[а-я]+\\w*/ui';
  7.  
  8. function fixText($text, $regexp){
  9. $letters = array(
  10. 'A'=>'А','a'=>'а','B'=>'В','C'=>'С','c'=>'с','E'=>'Е','e'=>'е','K'=>'К','M'=>'М','O'=>'О','o'=>'о','P'=>'Р','p'=>'р','T'=>'Т','y'=>'у','X'=>'Х','x'=>'х'
  11. );
  12. $words = array();
  13. preg_match_all($regexp, $text, $words);
  14. foreach($words[0] as $word){
  15. if(preg_match('/(?<!\\w)[а-я]+[a-z]+\\w*/ui', $word)){
  16. $result = preg_replace('/[a-z]+/ui', '[$0]', $word);
  17. echo "Опечатка в слове {$word}: {$result}\n";
  18. $fixRus = strtr($word, $letters);
  19. echo"Опечатка в слове {$fixRus} исправлена.\n";
  20. }
  21. elseif(preg_match('/(?<!\\w)[a-z]+[а-я]+\\w*/ui', $text)){
  22. $result = preg_replace('/[а-я]+/ui', '[$0]', $word);
  23. echo "Опечатка в слове {$word}: {$result}\n";
  24. array_flip($letters);
  25. $fixLat = strtr($word, $letters);
  26. echo"Опечатка в слове {$fixLat} исправлена.\n";
  27. }
  28. }}
  29. $resultRus = fixText($text, $regexpRus);
  30. echo"{$resultRus}\n";
  31. $resultLat = fixText($text, $regexpLat);
  32. echo"{$resultLat}\n";
Success #stdin #stdout 0.02s 52472KB
stdin
Standard input is empty
stdout
Опечатка в слове Пocтaвкa: П[oc]т[a]вк[a]
Опечатка в слове Поставка исправлена.
Опечатка в слове мяco: мя[co]
Опечатка в слове мясо исправлена.
Опечатка в слове гoвядины: г[o]вядины
Опечатка в слове говядины исправлена.
Опечатка в слове бecкостнoe: б[ec]костн[oe]
Опечатка в слове бескостное исправлена.

Опечатка в слове Sаmsung: S[а]msung
Опечатка в слове Sаmsung исправлена.