fork(1) download
  1. <?php
  2.  
  3.  
  4. $text = <<<EOF
  5. Как тебе наверно известно, многие люди, занимающие.государственные посты, тратят свои силы отнюдь не
  6. на улучшение ситуации в своем городе или регионе,а на придумывание разнообразных схем по
  7. перемещению вверенных им бюджетных средств в свои карманы!Например, государственные органы, которые хотят провести закупки, обязаны организовать
  8. публичные торги и разместить?объявление о них на сайте госзакупок. Чтобы помешать всем жылающим участвовать
  9. в тендере (и чтобы отдать заказ «своим людям» и получить потом от них в свой карман часть денег), они
  10. заменяют в описании заказа некоторые:русские буквы на похожие на них латинские. Таким образом, не мышы
  11. предупрежденные а заранее организации не смогут но найти объявление через поиск и принять участие в конкурсе. сдесь зделал
  12. EOF
  13. ;
  14.  
  15. function findError($text, $patternMsg) {
  16. preg_match_all($patternMsg['pattern'], $text, $matches);
  17. foreach($matches as $value){
  18. foreach($value as $value2){
  19. echo "{$value2}\t-\t{$patternMsg['msg']}\n";
  20. }
  21. }
  22. echo "\n";
  23. }
  24.  
  25. $matches = array();
  26.  
  27. //нет пробела после запятой, точки с запятой, восклицательного знака, вопросительного знака, двоеточия
  28. $patternMsg = array (
  29. 'pattern' => "/[.,!?:;]\w/ui",
  30. 'msg' => "После знаков припенания должен стоять пробел"
  31. );
  32. findError($text, $patternMsg);
  33.  
  34. //«жи» или «ши» написано с буквой ы
  35. $patternMsg = array (
  36. 'pattern' => "/жы|шы/ui",
  37. 'msg' => "ЖИ ШИ"
  38. );
  39. findError($text, $patternMsg);
  40.  
  41. //в тексте есть слово «координально» или «сдесь», «зделал», «зделаю», «зделан»
  42. $patternMsg = array (
  43. 'pattern' => "/сдесь|зделал|зделаю|зделан/ui",
  44. 'msg' => "Правописание приставок, оканчивающихся на буквы З и С"
  45. );
  46. findError($text, $patternMsg);
  47.  
  48. //в тексте есть слова «а» или «но» без запятой перед ними.
  49. $patternMsg = array (
  50. 'pattern' => "/\b\s\bа\b/u",
  51. 'msg' => "«а» или «но» без запятой перед ними"
  52. );
  53. findError($text, $patternMsg);
  54.  
  55. //в тексте есть слова «а» или «но» без запятой перед ними.
  56. $patternMsg = array (
  57. 'pattern' => "/\b\s\bно\b/u",
  58. 'msg' => "«а» или «но» без запятой перед ними"
  59. );
  60. findError($text, $patternMsg);
  61. ?>
Success #stdin #stdout 0.02s 52432KB
stdin
Standard input is empty
stdout
.г	-	После знаков припенания должен стоять пробел
,а	-	После знаков припенания должен стоять пробел
!Н	-	После знаков припенания должен стоять пробел
?о	-	После знаков припенания должен стоять пробел
:р	-	После знаков припенания должен стоять пробел

жы	-	ЖИ ШИ
шы	-	ЖИ ШИ

сдесь	-	Правописание приставок, оканчивающихся на буквы З и С
зделал	-	Правописание приставок, оканчивающихся на буквы З и С

 а	-	«а» или «но» без запятой перед ними

 но	-	«а» или «но» без запятой перед ними