<?php
$text = "Такая,знаете ли,мура получается с этим программированием;поначалу всё вроде шло хорошо!Даже замечательно! Но ведь в какой-то момент всегда начинаются проблемы, вы понимаете?А в этот раз они начались тогда,когда дошёл сначала до массивов;затем было сложно с циклами и массивами управляться сразу,но вполне ещё терпимо; потом вроде бы разобрался. Думаете -это легко для гуманитария? Для гуманитария, может быть, и легко, а для меня - нет. Мне как-то проще траллить технарей,чем стать на их уровень в программировании. У меня шырокий кругозор и шикарная жызненная позиция:непротивление насилию злом,но это, как ни странно, не помогает освоить программирование. Всё это весьма удручает,а также выбивает из колеи. А выбитый из колеи гуманитарий способен затралить любого,даже уравновешенного технаря-программиста на языке PHP. Это координально меняет ситуацию, описанную сдесь. Если же я зделаю всё так, как должно быть зделано, то все останутся целы." ;
$possibleErrors = array ( 0 => array ( "pattern" => "/.{3,5}координально.{3,5}/ui" , "message" => "- Ошибка в слове \" кардинально\" ."
) ,
1 => array ( "pattern" => "/.{3,5}сдесь.{3,5}/ui" , "message" => "- Не \" сдесь\" , а \" здесь\" ."
) ,
2 => array ( "pattern" => "/.{3,5}здела[лнoюет]{1,2}.{3,5}/ui" , "message" => "- Приставки \" з\" нет в русском языке."
) ,
3 => array ( "pattern" => "/.{3,5}[^а-яё\\ s]а\\ s.{3,5}/ui" , "message" => "- Пропущен пробел перед союзом \" а\" ."
) ,
4 => array ( "pattern" => "/.{3,5}[^а-яё\\ s]но\\ s.{3,5}/ui" , "message" => "- Пропущен пробел перед союзом \" но\" ."
) ,
5 => array ( "pattern" => "/.{3,5}[,\\ .!\\ ?:;][^\\ s(а|но)].{3,5}/ui" , "message" => "- Пропущен пробел после знака препинания."
) ,
6 => array ( "pattern" => "/.{3,5}(ж|ш)ы.{3,5}/ui" , "message" => "- \" Жи-Ши\" пиши с \" и\" !"
)
) ;
$possibleErrorsCount = count ( $possibleErrors ) ; /*Считаем количество регулярных выражений в массиве*/
for ( $i = 0 ; $i < $possibleErrorsCount ; $i ++ ) { /*Цикл для поиска ошибок с помощью отдельных регулярок (ключей) в массиве и вывода соответствующих регуляркам правил (значений в массиве)*/
if ( preg_match_all ( $possibleErrors [ $i ] [ 'pattern' ] , $text , $matches ) ) { /*Достаём из массива регулярку, подставляем её в функцию, проверяем найденные ошибки в тексте $text на соответствие*/ $message = $possibleErrors [ $i ] [ 'message' ] ; /*Выводим соответствующее правило из массива (содержание), чтобы вывести его затем в echo*/
$pattern = $possibleErrors [ $i ] [ 'pattern' ] ; /*Выводим соответствующую регулярку из массива (ключ)*/
$cleanMatches = $matches [ 0 ] ; /*Упрощаем получившийся массив с ошибками для возможности последующего вывода ошибок*/
foreach ( $cleanMatches as $key => $value ) { /*Цикл для извлечения ошибок из массива и вывода их в echo*/
echo "...{$value} ... {$message} \n " ;
}
}
}
?>
PD9waHAKCmVycm9yX3JlcG9ydGluZygtMSk7Cm1iX2ludGVybmFsX2VuY29kaW5nKCd1dGYtOCcpOwoKJHRleHQgPSAi0KLQsNC60LDRjyzQt9C90LDQtdGC0LUg0LvQuCzQvNGD0YDQsCDQv9C+0LvRg9GH0LDQtdGC0YHRjyDRgSDRjdGC0LjQvCDQv9GA0L7Qs9GA0LDQvNC80LjRgNC+0LLQsNC90LjQtdC8O9C/0L7QvdCw0YfQsNC70YMg0LLRgdGRINCy0YDQvtC00LUg0YjQu9C+INGF0L7RgNC+0YjQviHQlNCw0LbQtSDQt9Cw0LzQtdGH0LDRgtC10LvRjNC90L4hINCd0L4g0LLQtdC00Ywg0LIg0LrQsNC60L7QuS3RgtC+INC80L7QvNC10L3RgiDQstGB0LXQs9C00LAg0L3QsNGH0LjQvdCw0Y7RgtGB0Y8g0L/RgNC+0LHQu9C10LzRiywg0LLRiyDQv9C+0L3QuNC80LDQtdGC0LU/0JAg0LIg0Y3RgtC+0YIg0YDQsNC3INC+0L3QuCDQvdCw0YfQsNC70LjRgdGMINGC0L7Qs9C00LAs0LrQvtCz0LTQsCDQtNC+0YjRkdC7INGB0L3QsNGH0LDQu9CwINC00L4g0LzQsNGB0YHQuNCy0L7QsjvQt9Cw0YLQtdC8INCx0YvQu9C+INGB0LvQvtC20L3QviDRgSDRhtC40LrQu9Cw0LzQuCDQuCDQvNCw0YHRgdC40LLQsNC80Lgg0YPQv9GA0LDQstC70Y/RgtGM0YHRjyDRgdGA0LDQt9GDLNC90L4g0LLQv9C+0LvQvdC1INC10YnRkSDRgtC10YDQv9C40LzQvjsg0L/QvtGC0L7QvCDQstGA0L7QtNC1INCx0Ysg0YDQsNC30L7QsdGA0LDQu9GB0Y8uINCU0YPQvNCw0LXRgtC1IC3RjdGC0L4g0LvQtdCz0LrQviDQtNC70Y8g0LPRg9C80LDQvdC40YLQsNGA0LjRjz8g0JTQu9GPINCz0YPQvNCw0L3QuNGC0LDRgNC40Y8sINC80L7QttC10YIg0LHRi9GC0YwsINC4INC70LXQs9C60L4sINCwINC00LvRjyDQvNC10L3RjyAtINC90LXRgi4g0JzQvdC1INC60LDQui3RgtC+INC/0YDQvtGJ0LUg0YLRgNCw0LvQu9C40YLRjCDRgtC10YXQvdCw0YDQtdC5LNGH0LXQvCDRgdGC0LDRgtGMINC90LAg0LjRhSDRg9GA0L7QstC10L3RjCDQsiDQv9GA0L7Qs9GA0LDQvNC80LjRgNC+0LLQsNC90LjQuC4g0KMg0LzQtdC90Y8g0YjRi9GA0L7QutC40Lkg0LrRgNGD0LPQvtC30L7RgCDQuCDRiNC40LrQsNGA0L3QsNGPINC20YvQt9C90LXQvdC90LDRjyDQv9C+0LfQuNGG0LjRjzrQvdC10L/RgNC+0YLQuNCy0LvQtdC90LjQtSDQvdCw0YHQuNC70LjRjiDQt9C70L7QvCzQvdC+INGN0YLQviwg0LrQsNC6INC90Lgg0YHRgtGA0LDQvdC90L4sINC90LUg0L/QvtC80L7Qs9Cw0LXRgiDQvtGB0LLQvtC40YLRjCDQv9GA0L7Qs9GA0LDQvNC80LjRgNC+0LLQsNC90LjQtS4g0JLRgdGRINGN0YLQviDQstC10YHRjNC80LAg0YPQtNGA0YPRh9Cw0LXRgizQsCDRgtCw0LrQttC1INCy0YvQsdC40LLQsNC10YIg0LjQtyDQutC+0LvQtdC4LiDQkCDQstGL0LHQuNGC0YvQuSDQuNC3INC60L7Qu9C10Lgg0LPRg9C80LDQvdC40YLQsNGA0LjQuSDRgdC/0L7RgdC+0LHQtdC9INC30LDRgtGA0LDQu9C40YLRjCDQu9GO0LHQvtCz0L4s0LTQsNC20LUg0YPRgNCw0LLQvdC+0LLQtdGI0LXQvdC90L7Qs9C+INGC0LXRhdC90LDRgNGPLdC/0YDQvtCz0YDQsNC80LzQuNGB0YLQsCDQvdCwINGP0LfRi9C60LUgUEhQLiDQrdGC0L4g0LrQvtC+0YDQtNC40L3QsNC70YzQvdC+INC80LXQvdGP0LXRgiDRgdC40YLRg9Cw0YbQuNGOLCDQvtC/0LjRgdCw0L3QvdGD0Y4g0YHQtNC10YHRjC4g0JXRgdC70Lgg0LbQtSDRjyDQt9C00LXQu9Cw0Y4g0LLRgdGRINGC0LDQuiwg0LrQsNC6INC00L7Qu9C20L3QviDQsdGL0YLRjCDQt9C00LXQu9Cw0L3Qviwg0YLQviDQstGB0LUg0L7RgdGC0LDQvdGD0YLRgdGPINGG0LXQu9GLLiI7CiRwb3NzaWJsZUVycm9ycyA9IGFycmF5ICgKCSAgICAgICAgICAgICAgICAgMCA9PiBhcnJheSAoICJwYXR0ZXJuIiA9PiAiLy57Myw1fdC60L7QvtGA0LTQuNC90LDQu9GM0L3Qvi57Myw1fS91aSIsICAgICAgICAKCSAgICAgICAgICAgICAgICAgCSAgICAgICAgICJtZXNzYWdlIiA9PiAiLSDQntGI0LjQsdC60LAg0LIg0YHQu9C+0LLQtSBcItC60LDRgNC00LjQvdCw0LvRjNC90L5cIi4iCgkgICAgICAgICAgICAgICAgIAkgICAgICAgICksCgkgICAgICAgICAgICAgICAgIDEgPT4gYXJyYXkgKCAicGF0dGVybiIgPT4gIi8uezMsNX3RgdC00LXRgdGMLnszLDV9L3VpIiwKCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtZXNzYWdlIiA9PiAiLSDQndC1IFwi0YHQtNC10YHRjFwiLCDQsCBcItC30LTQtdGB0YxcIi4iCgkgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKCSAgICAgICAgICAgICAgICAgMiA9PiBhcnJheSAoICJwYXR0ZXJuIiA9PiAiLy57Myw1fdC30LTQtdC70LBb0LvQvW/RjtC10YJdezEsMn0uezMsNX0vdWkiLCAKCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtZXNzYWdlIiA9PiAiLSDQn9GA0LjRgdGC0LDQstC60LggXCLQt1wiINC90LXRgiDQsiDRgNGD0YHRgdC60L7QvCDRj9C30YvQutC1LiIKCSAgICAgICAgICAgICAgICAgICAgICAgICAgICApLCAgIAoJICAgICAgICAgICAgICAgICAzID0+IGFycmF5ICggInBhdHRlcm4iID0+ICIvLnszLDV9W17QsC3Rj9GRXFxzXdCwXFxzLnszLDV9L3VpIiAsIAoJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1lc3NhZ2UiID0+ICItINCf0YDQvtC/0YPRidC10L0g0L/RgNC+0LHQtdC7INC/0LXRgNC10LQg0YHQvtGO0LfQvtC8IFwi0LBcIi4iCgkgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKCSAgICAgICAgICAgICAgICAgNCA9PiBhcnJheSAoICJwYXR0ZXJuIiA9PiAiLy57Myw1fVte0LAt0Y/RkVxcc13QvdC+XFxzLnszLDV9L3VpIiwgCgkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtZXNzYWdlIiA9PiAiLSDQn9GA0L7Qv9GD0YnQtdC9INC/0YDQvtCx0LXQuyDQv9C10YDQtdC0INGB0L7RjtC30L7QvCBcItC90L5cIi4iCgkgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwgICAKCSAgICAgICAgICAgICAgICAgNSA9PiBhcnJheSAoICJwYXR0ZXJuIiA9PiAiLy57Myw1fVssXFwuIVxcPzo7XVteXFxzKNCwfNC90L4pXS57Myw1fS91aSIsCgkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtZXNzYWdlIiA9PiAiLSDQn9GA0L7Qv9GD0YnQtdC9INC/0YDQvtCx0LXQuyDQv9C+0YHQu9C1INC30L3QsNC60LAg0L/RgNC10L/QuNC90LDQvdC40Y8uIgoJICAgICAgICAgICAgICAgICAgICAgICAgICAgICksICAgICAgIAoJICAgICAgICAgICAgICAgICA2ID0+IGFycmF5ICggInBhdHRlcm4iID0+ICIvLnszLDV9KNC2fNGIKdGLLnszLDV9L3VpIiAsIAoJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWVzc2FnZSIgPT4gIi0gXCLQltC4LdCo0LhcIiDQv9C40YjQuCDRgSBcItC4XCIhIgoJICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKIAkgICAgICAgICAgICAgICApOwokcG9zc2libGVFcnJvcnNDb3VudCA9IGNvdW50KCRwb3NzaWJsZUVycm9ycyk7IC8q0KHRh9C40YLQsNC10Lwg0LrQvtC70LjRh9C10YHRgtCy0L4g0YDQtdCz0YPQu9GP0YDQvdGL0YUg0LLRi9GA0LDQttC10L3QuNC5INCyINC80LDRgdGB0LjQstC1Ki8KCmZvciAoJGk9MDsgJGkgPCAkcG9zc2libGVFcnJvcnNDb3VudDsgJGkrKykgeyAvKtCm0LjQutC7INC00LvRjyDQv9C+0LjRgdC60LAg0L7RiNC40LHQvtC6INGBINC/0L7QvNC+0YnRjNGOINC+0YLQtNC10LvRjNC90YvRhSDRgNC10LPRg9C70Y/RgNC+0LogKNC60LvRjtGH0LXQuSkg0LIg0LzQsNGB0YHQuNCy0LUg0Lgg0LLRi9Cy0L7QtNCwINGB0L7QvtGC0LLQtdGC0YHRgtCy0YPRjtGJ0LjRhSDRgNC10LPRg9C70Y/RgNC60LDQvCDQv9GA0LDQstC40LsgKNC30L3QsNGH0LXQvdC40Lkg0LIg0LzQsNGB0YHQuNCy0LUpKi8KCglpZiAocHJlZ19tYXRjaF9hbGwoJHBvc3NpYmxlRXJyb3JzWyRpXVsncGF0dGVybiddLCAkdGV4dCwgJG1hdGNoZXMpKSB7IC8q0JTQvtGB0YLQsNGR0Lwg0LjQtyDQvNCw0YHRgdC40LLQsCDRgNC10LPRg9C70Y/RgNC60YMsINC/0L7QtNGB0YLQsNCy0LvRj9C10Lwg0LXRkSDQsiDRhNGD0L3QutGG0LjRjiwg0L/RgNC+0LLQtdGA0Y/QtdC8INC90LDQudC00LXQvdC90YvQtSDQvtGI0LjQsdC60Lgg0LIg0YLQtdC60YHRgtC1ICR0ZXh0INC90LAg0YHQvtC+0YLQstC10YLRgdGC0LLQuNC1Ki8KCQkkbWVzc2FnZSA9ICRwb3NzaWJsZUVycm9yc1skaV1bJ21lc3NhZ2UnXTsgLyrQktGL0LLQvtC00LjQvCDRgdC+0L7RgtCy0LXRgtGB0YLQstGD0Y7RidC10LUg0L/RgNCw0LLQuNC70L4g0LjQtyDQvNCw0YHRgdC40LLQsCAo0YHQvtC00LXRgNC20LDQvdC40LUpLCDRh9GC0L7QsdGLINCy0YvQstC10YHRgtC4INC10LPQviDQt9Cw0YLQtdC8INCyIGVjaG8qLwoJCSRwYXR0ZXJuID0gJHBvc3NpYmxlRXJyb3JzWyRpXVsncGF0dGVybiddOyAvKtCS0YvQstC+0LTQuNC8INGB0L7QvtGC0LLQtdGC0YHRgtCy0YPRjtGJ0YPRjiDRgNC10LPRg9C70Y/RgNC60YMg0LjQtyDQvNCw0YHRgdC40LLQsCAo0LrQu9GO0YcpKi8KICAgICAgICAkY2xlYW5NYXRjaGVzID0gJG1hdGNoZXNbMF07IC8q0KPQv9GA0L7RidCw0LXQvCDQv9C+0LvRg9GH0LjQstGI0LjQudGB0Y8g0LzQsNGB0YHQuNCyINGBINC+0YjQuNCx0LrQsNC80Lgg0LTQu9GPINCy0L7Qt9C80L7QttC90L7RgdGC0Lgg0L/QvtGB0LvQtdC00YPRjtGJ0LXQs9C+INCy0YvQstC+0LTQsCDQvtGI0LjQsdC+0LoqLwogICAgICAgIAogICAgICAgIGZvcmVhY2ggKCRjbGVhbk1hdGNoZXMgYXMgJGtleSA9PiAkdmFsdWUpIHsgLyrQptC40LrQuyDQtNC70Y8g0LjQt9Cy0LvQtdGH0LXQvdC40Y8g0L7RiNC40LHQvtC6INC40Lcg0LzQsNGB0YHQuNCy0LAg0Lgg0LLRi9Cy0L7QtNCwINC40YUg0LIgZWNobyovCiAgICAgICAgICAgIAogICAgICAgICAgICBlY2hvICIuLi57JHZhbHVlfS4uLiB7JG1lc3NhZ2V9XG4iOwogICAgICAgIH0KICAJfQogfQoKPz4K