fork(3) download
  1. <?php
  2. $text = "
  3. МУУ ГОУУО ОПП Омской области обьявляет
  4. конкурс на постaвку кaнцелярских тoваров фирмы Fuсk Pаper
  5. на сумму 100500 рублeй."; //Текст для проверки
  6. $regexLatin = "/[а-яА-ЯёЁ]+[a-zA-Z]+[а-яА-ЯёЁ]+/iu"; //Регулярка для поиска латиницы промеж русских букв
  7. $regexRus = "/[a-zA-Z]+[а-яА-ЯёЁ]+[a-zA-Z]+/iu"; //Регулярка для поиска русских букв промеж латиницы
  8. $regexLatinMark = "/[a-zA-Z]/iu"; //Регулярка поиска латинских букв для замены
  9. $regexRusMark = "/[а-яА-ЯёЁ]/iu"; //Регулярка поиска русских букв для замены
  10. $matchesLatin = array(); //Массив для результатов по латинице
  11. $matchesRus = array(); //Массив для результатов по русским буквам
  12. $foundLatin = preg_match_all($regexLatin, $text, $matchesLatin); //Подсчет подмены латиницы+занесение результатов в массив
  13. $foundRus = preg_match_all($regexRus, $text, $matchesRus); //Подсчет подмены русских букв+занесение результатов в массив
  14. $foundSum = $foundLatin + $foundRus; //Подсчет суммарной подменный
  15. $matchesLatin = preg_replace($regexLatinMark, '[$0]', $matchesLatin[0]);
  16. $matchesRus = preg_replace($regexRusMark, '[$0]', $matchesRus[0]); //Замена подмененных русских букв, русские буквы должны заключаться в квадратные скобки
  17. echo "Найдено $foundSum подмен. Из них $foundLatin подмен русских букв латиницей и $foundRus подмен латинских букв русскими. \n";
  18. if ($foundSum > 0) {
  19. if ($foundLatin > 0) {
  20. echo "Подмены русских букв: \n";
  21. foreach ($matchesLatin as $key => $word) {
  22. $key++;
  23. print "{$key}) {$word}\n";
  24. }
  25. unset($key);
  26. unset($word);
  27. } else {
  28. echo "Подмен русских букв нет.";
  29. }
  30. if ($foundRus > 0) {
  31. echo "Подмены латинских букв: \n";
  32. foreach ($matchesRus as $key => $word) {
  33. $key++;
  34. print "{$key}) {$word}\n";
  35. }
  36. unset($key);
  37. unset($word);
  38. } else {
  39. echo "Подмен латинских букв нет.";
  40. }
  41. }
Success #stdin #stdout 0.01s 24448KB
stdin
Standard input is empty
stdout
Найдено 6 подмен. Из них 4 подмен русских букв латиницей и 2 подмен латинских букв русскими. 
Подмены русских букв: 
1) пост[a]вку
2) к[a]нцелярских
3) т[o]варов
4) рубл[e]й
Подмены латинских букв: 
1) Fu[с]k
2) P[а]per