<?php
error_reporting (-1);
mb_internal_encoding('utf-8');

/* «Grammar Nazi». Напиши скрипт, проверяющий текст на наличие злостных ошибок:

    нет пробела после запятой, точки с запятой, восклицательного знака, вопросительного знака, двоеточия
    «жи» или «ши» написано с буквой ы
    в тексте есть слово «координально» или «сдесь», «зделал», «зделаю», «зделан»
    в тексте есть слова «а» или «но» без запятой перед ними.
    (можешь добавить еще несколько правил, если хорошо знаешь русский язык)

В случае обнаружения ошибки скрипт должен писать сообщение об этом и выводить кусок текста с ошибкой (чтобы было понятно, что не так).*/

$matches = array();
$medium = "";
$text = "Ты а нонимен сдесь ";
$regexp = array(
	"Предложения начинаются с заглавной буквы.\n" => "/[.] [а-яё]/",
	"Нет слова координально, но есть кардинально.\n" => "/координально/ui",
	"Нет слова сдесь, но есть здесь.\n" => "/сдесь/ui",
	"Приставки з- не бывает.\n" => "/здела[лню]/ui",
	"Жи/ши пиши с буквой И.\n" => "/[жщ]ы/ui",
	"чк/чн без Ь.\n" => "/чь[кн]/u",
	"Перед частицами 'а' и/или 'но' ставится запятая.\n" => "/[а-яё] (а|но) /u",
	"Предложение должно кончатся знаком препинания.\n" => "/.*[а-я0-9 ]$/u"
);
$n = 0;
foreach ($regexp as $solution => $rule) {
	if (preg_match_all($rule, $text, $matches)){
		$medium = "->".$matches[0][0]."<-";
		$txt = str_replace($matches[0][0], $medium, $text);
//		preg_replace ($matches[0][0], $medium, $txt);
		echo $txt." || ".$solution;
		$n++;
		}
}
echo "Количество ошибок: $n\n";
if ($n == 0) {
	echo "Вы молодец!";
} elseif ($n <= count($regexp)) {
	echo "Вернитесь в школу.";
} else {
	echo "Вернитесь в детсад.";
}
?>