<?php
// Грамматический националист
$text = "Этот анон все правильно сказал";
$errors = [
'нет пробела после запятой' => '/,\w+/ui',
'нет пробела после точки' => '/\.\w+/ui',
'нет пробела после точки с запятой' => '/;\w+/ui',
'нет пробела после двоеточия' => '/:\w+/ui',
'нет пробела после вослицательного знака ' => '/!\w+/ui',
'нет пробела после вопросительного знака' => '/\?\w+/ui',
'нет запятой перед союзом а/но' => '/\w+[^,]\s(а|но)/ui',
'орфографическая ошибка в слове кардинально' => '/координально/ui',
'орфографическая ошибка в слове здесь' => '/сдесь/ui',
'орфографическая ошибка в слове сделал' => '/зделал/ui',
'орфографическая ошибка в слове сделаю' => '/зделаю/ui',
'орфографическая ошибка в слове сделан' => '/зделан/ui',
'орфографическая ошибка в слове сделаю' => '/зделаю/ui',
'обнаружена ошибка, «жи» и «ши» пишется с буквой «и»' => '/(жы|шы)\w+/ui',
];
// Разделяем значения массива на переменные
foreach ($errors as $comment => $regexp) {
// Находим ошибки в тексте и отдаем массив с ними
foreach($matches[0] as $value) {
echo "Внимание: \"{$value}\" $comment\n";
}
}
}
PD9waHAKLy8g0JPRgNCw0LzQvNCw0YLQuNGH0LXRgdC60LjQuSDQvdCw0YbQuNC+0L3QsNC70LjRgdGCCmVycm9yX3JlcG9ydGluZygtMSk7CgokdGV4dCA9ICLQrdGC0L7RgiDQsNC90L7QvSDQstGB0LUg0L/RgNCw0LLQuNC70YzQvdC+INGB0LrQsNC30LDQuyI7CiRlcnJvcnMgPSBbCgkn0L3QtdGCINC/0YDQvtCx0LXQu9CwINC/0L7RgdC70LUg0LfQsNC/0Y/RgtC+0LknID0+ICcvLFx3Ky91aScsCgkn0L3QtdGCINC/0YDQvtCx0LXQu9CwINC/0L7RgdC70LUg0YLQvtGH0LrQuCcgPT4gJy9cLlx3Ky91aScsCgkn0L3QtdGCINC/0YDQvtCx0LXQu9CwINC/0L7RgdC70LUg0YLQvtGH0LrQuCDRgSDQt9Cw0L/Rj9GC0L7QuScgPT4gJy87XHcrL3VpJywKCSfQvdC10YIg0L/RgNC+0LHQtdC70LAg0L/QvtGB0LvQtSDQtNCy0L7QtdGC0L7Rh9C40Y8nID0+ICcvOlx3Ky91aScsCgkn0L3QtdGCINC/0YDQvtCx0LXQu9CwINC/0L7RgdC70LUg0LLQvtGB0LvQuNGG0LDRgtC10LvRjNC90L7Qs9C+INC30L3QsNC60LAgJyA9PiAnLyFcdysvdWknLAoJJ9C90LXRgiDQv9GA0L7QsdC10LvQsCDQv9C+0YHQu9C1INCy0L7Qv9GA0L7RgdC40YLQtdC70YzQvdC+0LPQviDQt9C90LDQutCwJyA9PiAnL1w/XHcrL3VpJywKCSfQvdC10YIg0LfQsNC/0Y/RgtC+0Lkg0L/QtdGA0LXQtCDRgdC+0Y7Qt9C+0Lwg0LAv0L3QvicgPT4gJy9cdytbXixdXHMo0LB80L3QvikvdWknLAoJJ9C+0YDRhNC+0LPRgNCw0YTQuNGH0LXRgdC60LDRjyDQvtGI0LjQsdC60LAg0LIg0YHQu9C+0LLQtSDQutCw0YDQtNC40L3QsNC70YzQvdC+JyA9PiAnL9C60L7QvtGA0LTQuNC90LDQu9GM0L3Qvi91aScsCgkn0L7RgNGE0L7Qs9GA0LDRhNC40YfQtdGB0LrQsNGPINC+0YjQuNCx0LrQsCDQsiDRgdC70L7QstC1INC30LTQtdGB0YwnID0+ICcv0YHQtNC10YHRjC91aScsCgkn0L7RgNGE0L7Qs9GA0LDRhNC40YfQtdGB0LrQsNGPINC+0YjQuNCx0LrQsCDQsiDRgdC70L7QstC1INGB0LTQtdC70LDQuycgPT4gJy/Qt9C00LXQu9Cw0LsvdWknLAoJJ9C+0YDRhNC+0LPRgNCw0YTQuNGH0LXRgdC60LDRjyDQvtGI0LjQsdC60LAg0LIg0YHQu9C+0LLQtSDRgdC00LXQu9Cw0Y4nID0+ICcv0LfQtNC10LvQsNGOL3VpJywKCSfQvtGA0YTQvtCz0YDQsNGE0LjRh9C10YHQutCw0Y8g0L7RiNC40LHQutCwINCyINGB0LvQvtCy0LUg0YHQtNC10LvQsNC9JyA9PiAnL9C30LTQtdC70LDQvS91aScsCgkn0L7RgNGE0L7Qs9GA0LDRhNC40YfQtdGB0LrQsNGPINC+0YjQuNCx0LrQsCDQsiDRgdC70L7QstC1INGB0LTQtdC70LDRjicgPT4gJy/Qt9C00LXQu9Cw0Y4vdWknLAoJJ9C+0LHQvdCw0YDRg9C20LXQvdCwINC+0YjQuNCx0LrQsCwgwqvQttC4wrsg0LggwqvRiNC4wrsg0L/QuNGI0LXRgtGB0Y8g0YEg0LHRg9C60LLQvtC5IMKr0LjCuycgPT4gJy8o0LbRi3zRiNGLKVx3Ky91aScsCl07CgovLyDQoNCw0LfQtNC10LvRj9C10Lwg0LfQvdCw0YfQtdC90LjRjyDQvNCw0YHRgdC40LLQsCDQvdCwINC/0LXRgNC10LzQtdC90L3Ri9C1CmZvcmVhY2ggKCRlcnJvcnMgYXMgJGNvbW1lbnQgPT4gJHJlZ2V4cCkgewoJLy8g0J3QsNGF0L7QtNC40Lwg0L7RiNC40LHQutC4INCyINGC0LXQutGB0YLQtSDQuCDQvtGC0LTQsNC10Lwg0LzQsNGB0YHQuNCyINGBINC90LjQvNC4CglpZiAocHJlZ19tYXRjaF9hbGwoJHJlZ2V4cCwgJHRleHQsICRtYXRjaGVzKSkgewoJCWZvcmVhY2goJG1hdGNoZXNbMF0gYXMgJHZhbHVlKSB7CgkJCWVjaG8gItCS0L3QuNC80LDQvdC40LU6IFwieyR2YWx1ZX1cIiAkY29tbWVudFxuIjsKCQl9Cgl9Cn0=