fork(1) download
  1. <?php
  2.  
  3.  
  4. function testWord($word){
  5.  
  6. $char = preg_split('//u', $word);
  7.  
  8. $cLetter = 0; //считчик кирилицы
  9. $lLetter = 0; //считчик латиницы
  10.  
  11. //заполняем счетчики
  12. foreach ($char as $letter){
  13. if(preg_match('/\p{Cyrillic}/u', $letter)==1){
  14. $cLetter += 1;
  15. }
  16. else if (preg_match('/\p{Latin}/u', $letter)==1){
  17. $lLetter += 1;
  18. }
  19. }
  20.  
  21. $rExp = ''; // определяем регулярку для замены в зависимости от алфавита
  22. if($cLetter >= $lLetter){
  23. $rExp = '/\p{Latin}/u';
  24. }
  25. else{
  26. $rExp = '/\p{Cyrillic}/u';
  27. }
  28. // берем буквы в '[]'
  29. foreach ($char as $val => $letter){
  30. if(preg_match($rExp, $letter)==1){
  31. $char[$val]= '['.$letter.']';
  32. }
  33. }
  34. // возвращаем новое слово
  35. return implode($char);
  36. }
  37.  
  38.  
  39. function getLatinLetter ($text){
  40. $list = preg_split('/ /', $text);//делим текст на слова
  41.  
  42. //берем 'опечатки' в '[]'
  43. foreach($list as $val => $word){
  44. $newWord = testWord($word);
  45. $list[$val] = $newWord;
  46. }
  47. $newText = implode(' ', $list);
  48. echo $newText;
  49.  
  50.  
  51. }
  52. $text = <<<EOF
  53. Пocтaвкa мяco гoвядины, бecкостнoe для нужд государственного
  54. бюджетного учреждения здравоохранения Республики Башкортостан
  55. Инфекционная клиническая больница № 4 гoрода Уфа
  56. EOF
  57. ;
  58.  
  59. getLatinLetter($text);
  60.  
  61.  
  62. // your code goes here
Success #stdin #stdout 0.02s 52488KB
stdin
Standard input is empty
stdout
	П[o][c]т[a]вк[a] мя[c][o] г[o]вядины, б[e][c]костн[o][e] для нужд государственного 
	бюджетного учреждения здравоохранения Республики Башкортостан
	Инфекционная клиническая больница № 4 г[o]рода Уфа