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