fork(1) download
  1. <?php
  2.  
  3.  
  4. function grammar($text) {
  5. $regexp1 = '/[\!\,\.\?\-\:\;][^ ].{5}/'; /*.{5} для вывода места ошибки*/
  6. $regexp2 = '/.{5}[жш][ы][а-я]{1,}[ ]/';
  7. $regexp3 = '/[з][д]([^(есь|ани|оров|раствуй)].{1,5})/';
  8. $regexp4 = '/.{5}[^.,!?][ ][а (но)]/';
  9. $matches = array();
  10. if (preg_match($regexp1, $text, $matches)) {
  11. echo "Вы не поставили пробел после знака препинания в {$matches[0]} \n";
  12. }
  13. if (preg_match($regexp2, $text, $matches)) {
  14. echo "Вы поставили букву ы после буквы ж или щ вот тут {$matches[0]} \n}";
  15. }
  16. if (preg_match($regexp3, $text, $matches)) {
  17. echo "Вы начали слово с буквы з вот тут {$matches[0]}";
  18. }
  19. if (preg_match($regexp4, $text, $matches)) {
  20. echo "Нет знака препинания перед а вот тут {$matches[0]}";
  21. }
  22. }
  23. $text = "Тестовый текст.Накидал чтобы найти ошибки,а не побываться. жыесть брат. здесь здул.";
  24. $test1 = grammar($text);
  25. function grammarTest ($text) {
  26. $regexp1 = '/[\\!\\,\\.\\?\\-\\:\\;][^ ].{5}/'; /*.{5} для вывода места ошибки*/
  27. $regexp2 = '/.{5}[жш][ы][а-я]{1,}[ ]/';
  28. $regexp3 = '/[з][д]([^(есь|ани|оров|равствуй)].{1,5})/';
  29. $regexp4 = '/.{5}[^.,!?][ ][а (но)]/';
  30. $matches = array();
  31. for ($i=1; $regexp($i <=4); $i++) {
  32. if (preg_match($regexp{$i}, $text, $matches)) {
  33. echo "Найдена ошибка вот тут {$matches[0]}";
  34. }
  35. }
  36. }
Success #stdin #stdout 0.02s 52432KB
stdin
Standard input is empty
stdout
Вы не поставили пробел после знака препинания в .Нак 
Вы поставили букву ы после буквы ж или щ вот тут �овый  
}Вы начали слово с буквы з вот тут �дес�Нет знака препинания перед а вот тут обы �