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