fork download
  1. <?php
  2.  
  3.  
  4. $coolStory = "Такая,знаете ли,мура получается с этим программированием;поначалу всё вроде шло хорошо!Даже замечательно! Но ведь в какой-то момент всегда начинаются проблемы, вы понимаете?А в этот раз они начались тогда,когда дошёл сначала до массивов;затем было сложно с циклами и массивами управляться сразу,но вполне ещё терпимо; потом вроде бы разобрался. Думаете -это легко для гуманитария? Для гуманитария, может быть, и легко, а для меня - нет. Мне как-то проще траллить технарей,чем стать на их уровень в программировании. У меня шырокий кругозор и шикарная жызненная позиция:непротивление насилию злом,но это, как ни странно, не помогает освоить программирование. Всё это весьма удручает,а также выбивает из колеи. А выбитый из колеи гуманитарий способен затралить любого,даже уравновешенного технаря-программиста на языке PHP. Это координально меняет ситуацию, описанную сдесь. Если же я зделаю всё так, как должно быть зделано, то все останутся целы.";
  5.  
  6. $regExp = "/(.{3,5}((\\,|\\;|\\!|\\?|\\:)[а-яё]).{3,5})|(.{3,5}((ж|ш)ы).{3,5})|(.{3,5}(координально|сдесь|(зде(лал|лаю|лано|лать))).{3,5})|(.{3,5}(\\,(а|но)).{3,5})/iu";
  7.  
  8. $possibleErrors = array(
  9. "/координально/ui" => "- Ошибка в слове \"кардинально\".",
  10. "/сдесь/ui" => "- Не \"сдесь\", а \"здесь\".",
  11. "/здела[лнюет]{1,2}/ui" => "- Приставки \"з\" нет в русском языке.",
  12. "/\\,а/ui" => "- Пропущена запятая перед союзом \"а\".",
  13. "/\\,но/ui" => "- Пропущена запятая перед союзом \"но\".",
  14. "/(ж|ш)ы/ui" => "\"- Жи-Ши\" пиши с \"и\"!",
  15. "/(\\,|\\;|\\!|\\?|\\:)[б-яё]/ui" => "- Пропущен пробел после знака препинания."
  16. );
  17.  
  18. $errs = array();
  19.  
  20. preg_match_all($regExp, $coolStory, $errs, PREG_OFFSET_CAPTURE);
  21.  
  22. $matches = $errs[0];
  23.  
  24. //var_dump($matches);
  25.  
  26. $number = count($matches);
  27.  
  28. for ($i=0; $i < $number; $i++) {
  29.  
  30. foreach ($possibleErrors as $key => $value) {
  31.  
  32. if (preg_match($key, $matches[$i][0])) {
  33. $position = $matches[$i][1] - 30;
  34.  
  35.  
  36. $context = mb_substr($coolStory, $position, 60);
  37. echo " $value $context . \n";
  38.  
  39. }
  40. }
  41. }
  42.  
  43.  
  44. ?>
Success #stdin #stdout 0.04s 52480KB
stdin
Standard input is empty
stdout
 - Пропущен пробел после знака препинания. делано, то все останутся целы. . 
 - Пропущен пробел после знака препинания. я целы. . 
 - Пропущен пробел после знака препинания.  всё вроде шло хорошо!Даже замечательно! Но ведь в какой-то  . 
 - Пропущен пробел после знака препинания. й-то момент всегда начинаются проблемы, вы понимаете?А в это . 
 - Пропущен пробел после знака препинания. азобрался. Думаете -это легко для гуманитария? Для гуманитар . 
 - Пропущен пробел после знака препинания. рия, может быть, и легко, а для меня - нет. Мне как-то проще . 
 - Пропущена запятая перед союзом "но". ограммировании. У меня шырокий кругозор и шикарная жызненная . 
 - Пропущен пробел после знака препинания. ограммировании. У меня шырокий кругозор и шикарная жызненная . 
 - Пропущен пробел после знака препинания. е PHP. Это координально меняет ситуацию, описанную сдесь. Ес . 
 "- Жи-Ши" пиши с "и"!  быть зделано, то все останутся целы. . 
 "- Жи-Ши" пиши с "и"!  . 
 - Пропущен пробел после знака препинания.  . 
 - Пропущена запятая перед союзом "но".  . 
 - Пропущен пробел после знака препинания.  . 
 - Пропущена запятая перед союзом "а".  . 
 - Пропущен пробел после знака препинания.  . 
 - Ошибка в слове "кардинально".  . 
 - Не "сдесь", а "здесь".  . 
 - Приставки "з" нет в русском языке.  . 
 - Приставки "з" нет в русском языке.  .