<?php
/*Напиши скрипт, проверяющий текст на наличие злостных ошибок:
нет пробела после запятой, точки с запятой, восклицательного знака, вопросительного знака, двоеточия
«жи» или «ши» написано с буквой ы
в тексте есть слово «координально» или «сдесь», «зделал», «зделаю», «зделан»
в тексте есть слова «а» или «но» без запятой перед ними.
(можешь добавить еще несколько правил, если хорошо знаешь русский язык)
В случае обнаружения ошибки скрипт должен писать сообщение об этом и выводить кусок текста с ошибкой
(чтобы было понятно, что не так).*/
//$text = "Привет,шыр!труд:Жыр?пассаЖЫР;зделаю Координально но, например сдесь решена проблема ушыбов.
// Зделано многое а? ведь это зделал я";
$text = "Один ананас, но зато какой";
$rules = [
['regexp' => '/[,;!?:][^,;!?:\\s]+/u', 'comment' => 'отсутствие пробелов'],
['regexp' => '/[а-яё]*(?:ж|ш)ы[а-яё]*/ui', 'comment' => 'написание жи-ши'],
['regexp' => '/координально|сдесь|здела(?:л|ю|н)\\S*/ui', 'comment' => 'орфографические'],
['regexp' => '/\\S*[^,]\\s(?:а|но).?/ui', 'comment' => 'пунктуация']
];
foreach ($rules as $rule){
if ($count){
echo "Нашлись ошибки ({$rule['comment']}) {$count} шт :\n";
foreach ($matches[0] as $mistake){
echo "{$mistake}\t";
};
echo "\n";
} else {
echo "Ошибки ({$rule['comment']}) отсутствуют\n";
}
}
PD9waHAKLyrQndCw0L/QuNGI0Lgg0YHQutGA0LjQv9GCLCDQv9GA0L7QstC10YDRj9GO0YnQuNC5INGC0LXQutGB0YIg0L3QsCDQvdCw0LvQuNGH0LjQtSDQt9C70L7RgdGC0L3Ri9GFINC+0YjQuNCx0L7QujoK0L3QtdGCINC/0YDQvtCx0LXQu9CwINC/0L7RgdC70LUg0LfQsNC/0Y/RgtC+0LksINGC0L7Rh9C60Lgg0YEg0LfQsNC/0Y/RgtC+0LksINCy0L7RgdC60LvQuNGG0LDRgtC10LvRjNC90L7Qs9C+INC30L3QsNC60LAsINCy0L7Qv9GA0L7RgdC40YLQtdC70YzQvdC+0LPQviDQt9C90LDQutCwLCDQtNCy0L7QtdGC0L7Rh9C40Y8KwqvQttC4wrsg0LjQu9C4IMKr0YjQuMK7INC90LDQv9C40YHQsNC90L4g0YEg0LHRg9C60LLQvtC5INGLCtCyINGC0LXQutGB0YLQtSDQtdGB0YLRjCDRgdC70L7QstC+IMKr0LrQvtC+0YDQtNC40L3QsNC70YzQvdC+wrsg0LjQu9C4IMKr0YHQtNC10YHRjMK7LCDCq9C30LTQtdC70LDQu8K7LCDCq9C30LTQtdC70LDRjsK7LCDCq9C30LTQtdC70LDQvcK7CtCyINGC0LXQutGB0YLQtSDQtdGB0YLRjCDRgdC70L7QstCwIMKr0LDCuyDQuNC70LggwqvQvdC+wrsg0LHQtdC3INC30LDQv9GP0YLQvtC5INC/0LXRgNC10LQg0L3QuNC80LguCijQvNC+0LbQtdGI0Ywg0LTQvtCx0LDQstC40YLRjCDQtdGJ0LUg0L3QtdGB0LrQvtC70YzQutC+INC/0YDQsNCy0LjQuywg0LXRgdC70Lgg0YXQvtGA0L7RiNC+INC30L3QsNC10YjRjCDRgNGD0YHRgdC60LjQuSDRj9C30YvQuikK0JIg0YHQu9GD0YfQsNC1INC+0LHQvdCw0YDRg9C20LXQvdC40Y8g0L7RiNC40LHQutC4INGB0LrRgNC40L/RgiDQtNC+0LvQttC10L0g0L/QuNGB0LDRgtGMINGB0L7QvtCx0YnQtdC90LjQtSDQvtCxINGN0YLQvtC8INC4INCy0YvQstC+0LTQuNGC0Ywg0LrRg9GB0L7QuiDRgtC10LrRgdGC0LAg0YEg0L7RiNC40LHQutC+0LkgCijRh9GC0L7QsdGLINCx0YvQu9C+INC/0L7QvdGP0YLQvdC+LCDRh9GC0L4g0L3QtSDRgtCw0LopLiovCgovLyR0ZXh0ID0gItCf0YDQuNCy0LXRgizRiNGL0YAh0YLRgNGD0LQ60JbRi9GAP9C/0LDRgdGB0LDQltCr0KA70LfQtNC10LvQsNGOINCa0L7QvtGA0LTQuNC90LDQu9GM0L3QviDQvdC+LCDQvdCw0L/RgNC40LzQtdGAINGB0LTQtdGB0Ywg0YDQtdGI0LXQvdCwINC/0YDQvtCx0LvQtdC80LAg0YPRiNGL0LHQvtCyLgovLwkJ0JfQtNC10LvQsNC90L4g0LzQvdC+0LPQvtC1INCwPyDQstC10LTRjCDRjdGC0L4g0LfQtNC10LvQsNC7INGPIjsKJHRleHQgPSAi0J7QtNC40L0g0LDQvdCw0L3QsNGBLCAgINC90L4g0LfQsNGC0L4g0LrQsNC60L7QuSI7CgokcnVsZXMgPSBbCglbJ3JlZ2V4cCcgPT4gJy9bLDshPzpdW14sOyE/Olxcc10rL3UnLCAnY29tbWVudCcgPT4gJ9C+0YLRgdGD0YLRgdGC0LLQuNC1INC/0YDQvtCx0LXQu9C+0LInXSwKCVsncmVnZXhwJyA9PiAnL1vQsC3Rj9GRXSooPzrQtnzRiCnRi1vQsC3Rj9GRXSovdWknLCAnY29tbWVudCcgPT4gJ9C90LDQv9C40YHQsNC90LjQtSDQttC4LdGI0LgnXSwKCVsncmVnZXhwJyA9PiAnL9C60L7QvtGA0LTQuNC90LDQu9GM0L3QvnzRgdC00LXRgdGMfNC30LTQtdC70LAoPzrQu3zRjnzQvSlcXFMqL3VpJywgJ2NvbW1lbnQnID0+ICfQvtGA0YTQvtCz0YDQsNGE0LjRh9C10YHQutC40LUnXSwKCVsncmVnZXhwJyA9PiAnL1xcUypbXixdXFxzKD860LB80L3QvikuPy91aScsICdjb21tZW50JyA9PiAn0L/Rg9C90LrRgtGD0LDRhtC40Y8nXQpdOwoKZm9yZWFjaCAoJHJ1bGVzIGFzICRydWxlKXsKCQoJJG1hdGNoZXMgPSBhcnJheSgpOwoJJGNvdW50ID0gcHJlZ19tYXRjaF9hbGwoJHJ1bGVbJ3JlZ2V4cCddLCAkdGV4dCwgJG1hdGNoZXMpOwoJaWYgKCRjb3VudCl7CgkJZWNobyAi0J3QsNGI0LvQuNGB0Ywg0L7RiNC40LHQutC4ICh7JHJ1bGVbJ2NvbW1lbnQnXX0pIHskY291bnR9INGI0YIgOlxuIjsKCQlmb3JlYWNoICgkbWF0Y2hlc1swXSBhcyAkbWlzdGFrZSl7CgkJCWVjaG8gInskbWlzdGFrZX1cdCI7CgkJfTsKCQllY2hvICJcbiI7Cgl9IGVsc2UgewoJCWVjaG8gItCe0YjQuNCx0LrQuCAoeyRydWxlWydjb21tZW50J119KSDQvtGC0YHRg9GC0YHRgtCy0YPRjtGCXG4iOwoJfQp9