fork download
  1. <?php
  2. $text = <<<EOF
  3. Разделите хлеб - здесь нет ошибок
  4. a|b - здесь нет ошибок
  5. Многоточие... - нет ошибок
  6. Многовопросие?? - нет ошибок
  7. Пропущена запятая но, вопрос, найдет ли это программа?
  8. Нет точек над еще, вопрос, найдет ли это программа?
  9. EOF;
  10.  
  11. $errors = [
  12.  
  13. "/(ж|ш)ы/ui" => "Жи-Ши пиши через И",
  14. "/координально/ui" => "Правильно: кардинально",
  15. "/здел\\S+/ui" => "Правильно: сделать",
  16. "/сдесь/ui" => "Правильно: здесь",
  17. "/[.|!|\\?|,|:|;]\\S+/ui" => "После пунктуационных знаков ставится пробел",
  18. "/\\S+ (а|но) \\S+/" => "Перед союзами А и НО ставится запятая.",
  19. "/ еще /ui" => "Не хватает точек над буквой Ё",
  20. ];
  21. $massivo = [];
  22.  
  23. foreach ($errors as $key => $explaining) {
  24. $errorcount = preg_match_all($key, $text, $massivo);
  25.  
  26. foreach ($massivo[0] as $a)
  27. {
  28. echo "An error here: ...$a..., the rule is: '$explaining'.\n";
  29. }
  30. }
  31.  
Success #stdin #stdout 0.03s 52480KB
stdin
Standard input is empty
stdout
An error here: ...зделите..., the rule is: 'Правильно: сделать'.
An error here: ...|b..., the rule is: 'После пунктуационных знаков ставится пробел'.
An error here: ........., the rule is: 'После пунктуационных знаков ставится пробел'.
An error here: ...??..., the rule is: 'После пунктуационных знаков ставится пробел'.