<?php
/* «Grammar Nazi». Напиши скрипт, проверяющий текст на наличие злостных ошибок:
нет пробела после запятой, точки с запятой, восклицательного знака, вопросительного знака, двоеточия
«жи» или «ши» написано с буквой ы
в тексте есть слово «координально» или «сдесь», «зделал», «зделаю», «зделан»
в тексте есть слова «а» или «но» без запятой перед ними.
(можешь добавить еще несколько правил, если хорошо знаешь русский язык)
В случае обнаружения ошибки скрипт должен писать сообщение об этом и выводить кусок текста с ошибкой (чтобы было понятно, что не так).*/
$medium = "" ;
$text = "Ты а нонимен сдесь " ;
"Предложения начинаются с заглавной буквы.\n " => "/[.] [а-яё]/" ,
"Нет слова координально, но есть кардинально.\n " => "/координально/ui" ,
"Нет слова сдесь, но есть здесь.\n " => "/сдесь/ui" ,
"Приставки з- не бывает.\n " => "/здела[лню]/ui" ,
"Жи/ши пиши с буквой И.\n " => "/[жщ]ы/ui" ,
"чк/чн без Ь.\n " => "/чь[кн]/u" ,
"Перед частицами 'а' и/или 'но' ставится запятая.\n " => "/[а-яё] (а|но) /u" ,
"Предложение должно кончатся знаком препинания.\n " => "/.*[а-я0-9 ]$/u"
) ;
$n = 0 ;
foreach ( $regexp as $solution => $rule ) {
$medium = "->" . $matches [ 0 ] [ 0 ] . "<-" ;
// 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 "Вернитесь в детсад." ;
}
?>
PD9waHAKZXJyb3JfcmVwb3J0aW5nICgtMSk7Cm1iX2ludGVybmFsX2VuY29kaW5nKCd1dGYtOCcpOwoKLyogwqtHcmFtbWFyIE5hemnCuy4g0J3QsNC/0LjRiNC4INGB0LrRgNC40L/Rgiwg0L/RgNC+0LLQtdGA0Y/RjtGJ0LjQuSDRgtC10LrRgdGCINC90LAg0L3QsNC70LjRh9C40LUg0LfQu9C+0YHRgtC90YvRhSDQvtGI0LjQsdC+0Lo6CgogICAg0L3QtdGCINC/0YDQvtCx0LXQu9CwINC/0L7RgdC70LUg0LfQsNC/0Y/RgtC+0LksINGC0L7Rh9C60Lgg0YEg0LfQsNC/0Y/RgtC+0LksINCy0L7RgdC60LvQuNGG0LDRgtC10LvRjNC90L7Qs9C+INC30L3QsNC60LAsINCy0L7Qv9GA0L7RgdC40YLQtdC70YzQvdC+0LPQviDQt9C90LDQutCwLCDQtNCy0L7QtdGC0L7Rh9C40Y8KICAgIMKr0LbQuMK7INC40LvQuCDCq9GI0LjCuyDQvdCw0L/QuNGB0LDQvdC+INGBINCx0YPQutCy0L7QuSDRiwogICAg0LIg0YLQtdC60YHRgtC1INC10YHRgtGMINGB0LvQvtCy0L4gwqvQutC+0L7RgNC00LjQvdCw0LvRjNC90L7CuyDQuNC70LggwqvRgdC00LXRgdGMwrssIMKr0LfQtNC10LvQsNC7wrssIMKr0LfQtNC10LvQsNGOwrssIMKr0LfQtNC10LvQsNC9wrsKICAgINCyINGC0LXQutGB0YLQtSDQtdGB0YLRjCDRgdC70L7QstCwIMKr0LDCuyDQuNC70LggwqvQvdC+wrsg0LHQtdC3INC30LDQv9GP0YLQvtC5INC/0LXRgNC10LQg0L3QuNC80LguCiAgICAo0LzQvtC20LXRiNGMINC00L7QsdCw0LLQuNGC0Ywg0LXRidC1INC90LXRgdC60L7Qu9GM0LrQviDQv9GA0LDQstC40LssINC10YHQu9C4INGF0L7RgNC+0YjQviDQt9C90LDQtdGI0Ywg0YDRg9GB0YHQutC40Lkg0Y/Qt9GL0LopCgrQkiDRgdC70YPRh9Cw0LUg0L7QsdC90LDRgNGD0LbQtdC90LjRjyDQvtGI0LjQsdC60Lgg0YHQutGA0LjQv9GCINC00L7Qu9C20LXQvSDQv9C40YHQsNGC0Ywg0YHQvtC+0LHRidC10L3QuNC1INC+0LEg0Y3RgtC+0Lwg0Lgg0LLRi9Cy0L7QtNC40YLRjCDQutGD0YHQvtC6INGC0LXQutGB0YLQsCDRgSDQvtGI0LjQsdC60L7QuSAo0YfRgtC+0LHRiyDQsdGL0LvQviDQv9C+0L3Rj9GC0L3Qviwg0YfRgtC+INC90LUg0YLQsNC6KS4qLwoKJG1hdGNoZXMgPSBhcnJheSgpOwokbWVkaXVtID0gIiI7CiR0ZXh0ID0gItCi0Ysg0LAg0L3QvtC90LjQvNC10L0g0YHQtNC10YHRjCAiOwokcmVnZXhwID0gYXJyYXkoCgki0J/RgNC10LTQu9C+0LbQtdC90LjRjyDQvdCw0YfQuNC90LDRjtGC0YHRjyDRgSDQt9Cw0LPQu9Cw0LLQvdC+0Lkg0LHRg9C60LLRiy5cbiIgPT4gIi9bLl0gW9CwLdGP0ZFdLyIsCgki0J3QtdGCINGB0LvQvtCy0LAg0LrQvtC+0YDQtNC40L3QsNC70YzQvdC+LCDQvdC+INC10YHRgtGMINC60LDRgNC00LjQvdCw0LvRjNC90L4uXG4iID0+ICIv0LrQvtC+0YDQtNC40L3QsNC70YzQvdC+L3VpIiwKCSLQndC10YIg0YHQu9C+0LLQsCDRgdC00LXRgdGMLCDQvdC+INC10YHRgtGMINC30LTQtdGB0YwuXG4iID0+ICIv0YHQtNC10YHRjC91aSIsCgki0J/RgNC40YHRgtCw0LLQutC4INC3LSDQvdC1INCx0YvQstCw0LXRgi5cbiIgPT4gIi/Qt9C00LXQu9CwW9C70L3Rjl0vdWkiLAoJItCW0Lgv0YjQuCDQv9C40YjQuCDRgSDQsdGD0LrQstC+0Lkg0JguXG4iID0+ICIvW9C20Yld0YsvdWkiLAoJItGH0Lov0YfQvSDQsdC10Lcg0KwuXG4iID0+ICIv0YfRjFvQutC9XS91IiwKCSLQn9C10YDQtdC0INGH0LDRgdGC0LjRhtCw0LzQuCAn0LAnINC4L9C40LvQuCAn0L3Qvicg0YHRgtCw0LLQuNGC0YHRjyDQt9Cw0L/Rj9GC0LDRjy5cbiIgPT4gIi9b0LAt0Y/RkV0gKNCwfNC90L4pIC91IiwKCSLQn9GA0LXQtNC70L7QttC10L3QuNC1INC00L7Qu9C20L3QviDQutC+0L3Rh9Cw0YLRgdGPINC30L3QsNC60L7QvCDQv9GA0LXQv9C40L3QsNC90LjRjy5cbiIgPT4gIi8uKlvQsC3RjzAtOSBdJC91IgopOwokbiA9IDA7CmZvcmVhY2ggKCRyZWdleHAgYXMgJHNvbHV0aW9uID0+ICRydWxlKSB7CglpZiAocHJlZ19tYXRjaF9hbGwoJHJ1bGUsICR0ZXh0LCAkbWF0Y2hlcykpewoJCSRtZWRpdW0gPSAiLT4iLiRtYXRjaGVzWzBdWzBdLiI8LSI7CgkJJHR4dCA9IHN0cl9yZXBsYWNlKCRtYXRjaGVzWzBdWzBdLCAkbWVkaXVtLCAkdGV4dCk7Ci8vCQlwcmVnX3JlcGxhY2UgKCRtYXRjaGVzWzBdWzBdLCAkbWVkaXVtLCAkdHh0KTsKCQllY2hvICR0eHQuIiB8fCAiLiRzb2x1dGlvbjsKCQkkbisrOwoJCX0KfQplY2hvICLQmtC+0LvQuNGH0LXRgdGC0LLQviDQvtGI0LjQsdC+0Lo6ICRuXG4iOwppZiAoJG4gPT0gMCkgewoJZWNobyAi0JLRiyDQvNC+0LvQvtC00LXRhiEiOwp9IGVsc2VpZiAoJG4gPD0gY291bnQoJHJlZ2V4cCkpIHsKCWVjaG8gItCS0LXRgNC90LjRgtC10YHRjCDQsiDRiNC60L7Qu9GDLiI7Cn0gZWxzZSB7CgllY2hvICLQktC10YDQvdC40YLQtdGB0Ywg0LIg0LTQtdGC0YHQsNC0LiI7Cn0KPz4=