<?php
// Текст:
$text = <<<EOF
нет пробела после запятой,точки с запятой;восклицательного знака!вопросительного знака?двоеточия:
«жы» или «шы» написано с буквой ы,
в тексте есть слово «координально» или «сдесь», «зделал», «зделаю», «зделан»
в тексте есть слова а или но без запятой перед ними.
EOF
;
// Массив патернов поиска и описаний ошибок
'/(\\S+)(,|;|!|[?]|:)(\\S+)/u' => 'нет обязательного пробела после «.,!?;:»' ,
'/(\\S*)([ ]*)(\\S*)(ж|ш)ы(\\S*)([ ]*)(\\S*)/u' => '«жи» или «ши» написано с буквой ы' ,
'/(координально)/u' => 'орфографические ошибки в словах' ,
'/(сдесь)/u' => 'орфографическая ошибка №1 в слове' ,
'/(зделал)/u' => 'орфографическая ошибка №2 в слове' ,
'/(зделаю)/u' => 'орфографическая ошибка №3 в слове' ,
'/(зделан)/u' => 'орфографическая ошибка №4 в слове' ,
'/(\\S*)([^,])([ ])(но|а)(\\s)/u' => 'союзы А или НО без запятой перед ними'
) ;
// Массив замены
'$1$2 $3' ,
'$1$2$3$4и$5$6$7' ,
'кардинально' , 'здесь' , 'сделал' , 'сделаю' , 'сделан' ,
'$1$2,$3$4$5'
) ;
// Выводим кусок текста с ошибкой
function findMistake ( $regexpArray , $text ) {
foreach ( $regexpArray as $regexp => $descriotion ) {
echo "\n Ошибка: {$descriotion} \n " ;
foreach ( $result as $e ) {
echo "*{$e[0]} *\n " ;
}
}
}
}
findMistake ( $regexpArray , $text ) ;
// Исправляем ошибки в тексте
echo "\n Исправленный текст:\n {$text} " ;
?>
PD9waHAKbWJfaW50ZXJuYWxfZW5jb2RpbmcoJ3V0Zi04Jyk7CgovLyDQotC10LrRgdGCOiAKJHRleHQgPSA8PDxFT0YK0L3QtdGCINC/0YDQvtCx0LXQu9CwINC/0L7RgdC70LUg0LfQsNC/0Y/RgtC+0Lks0YLQvtGH0LrQuCDRgSDQt9Cw0L/Rj9GC0L7QuTvQstC+0YHQutC70LjRhtCw0YLQtdC70YzQvdC+0LPQviDQt9C90LDQutCwIdCy0L7Qv9GA0L7RgdC40YLQtdC70YzQvdC+0LPQviDQt9C90LDQutCwP9C00LLQvtC10YLQvtGH0LjRjzoKwqvQttGLwrsg0LjQu9C4IMKr0YjRi8K7INC90LDQv9C40YHQsNC90L4g0YEg0LHRg9C60LLQvtC5INGLLArQsiDRgtC10LrRgdGC0LUg0LXRgdGC0Ywg0YHQu9C+0LLQviDCq9C60L7QvtGA0LTQuNC90LDQu9GM0L3QvsK7INC40LvQuCDCq9GB0LTQtdGB0YzCuywgwqvQt9C00LXQu9Cw0LvCuywgwqvQt9C00LXQu9Cw0Y7CuywgwqvQt9C00LXQu9Cw0L3CuwrQsiDRgtC10LrRgdGC0LUg0LXRgdGC0Ywg0YHQu9C+0LLQsCDQsCDQuNC70Lgg0L3QviDQsdC10Lcg0LfQsNC/0Y/RgtC+0Lkg0L/QtdGA0LXQtCDQvdC40LzQuC4KRU9GCjsKCi8vINCc0LDRgdGB0LjQsiDQv9Cw0YLQtdGA0L3QvtCyINC/0L7QuNGB0LrQsCDQuCDQvtC/0LjRgdCw0L3QuNC5INC+0YjQuNCx0L7QugokcmVnZXhwQXJyYXkgPSBhcnJheSgKICAgICAgICAnLyhcXFMrKSgsfDt8IXxbP118OikoXFxTKykvdScgPT4gJ9C90LXRgiDQvtCx0Y/Qt9Cw0YLQtdC70YzQvdC+0LPQviDQv9GA0L7QsdC10LvQsCDQv9C+0YHQu9C1IMKrLiwhPzs6wrsnLAogICAgICAgICcvKFxcUyopKFsgXSopKFxcUyopKNC2fNGIKdGLKFxcUyopKFsgXSopKFxcUyopL3UnID0+ICfCq9C20LjCuyDQuNC70LggwqvRiNC4wrsg0L3QsNC/0LjRgdCw0L3QviDRgSDQsdGD0LrQstC+0Lkg0YsnLAogICAgICAgICcvKNC60L7QvtGA0LTQuNC90LDQu9GM0L3QvikvdScgPT4gJ9C+0YDRhNC+0LPRgNCw0YTQuNGH0LXRgdC60LjQtSDQvtGI0LjQsdC60Lgg0LIg0YHQu9C+0LLQsNGFJywKICAgICAgICAnLyjRgdC00LXRgdGMKS91JyA9PiAn0L7RgNGE0L7Qs9GA0LDRhNC40YfQtdGB0LrQsNGPINC+0YjQuNCx0LrQsCDihJYxINCyINGB0LvQvtCy0LUnLAogICAgICAgICcvKNC30LTQtdC70LDQuykvdScgPT4gJ9C+0YDRhNC+0LPRgNCw0YTQuNGH0LXRgdC60LDRjyDQvtGI0LjQsdC60LAg4oSWMiDQsiDRgdC70L7QstC1JywKICAgICAgICAnLyjQt9C00LXQu9Cw0Y4pL3UnID0+ICfQvtGA0YTQvtCz0YDQsNGE0LjRh9C10YHQutCw0Y8g0L7RiNC40LHQutCwIOKEljMg0LIg0YHQu9C+0LLQtScsCiAgICAgICAgJy8o0LfQtNC10LvQsNC9KS91JyA9PiAn0L7RgNGE0L7Qs9GA0LDRhNC40YfQtdGB0LrQsNGPINC+0YjQuNCx0LrQsCDihJY0INCyINGB0LvQvtCy0LUnLAogICAgICAgICcvKFxcUyopKFteLF0pKFsgXSko0L3QvnzQsCkoXFxzKS91JyA9PiAn0YHQvtGO0LfRiyDQkCDQuNC70Lgg0J3QniDQsdC10Lcg0LfQsNC/0Y/RgtC+0Lkg0L/QtdGA0LXQtCDQvdC40LzQuCcKICAgICAgICApOwoKLy8g0JzQsNGB0YHQuNCyINC30LDQvNC10L3RiwokcmVwbGFjZW1lbnQgPSBhcnJheSgKICAgICAgICAnJDEkMiAkMycsCiAgICAgICAgJyQxJDIkMyQ00LgkNSQ2JDcnLAogICAgICAgICfQutCw0YDQtNC40L3QsNC70YzQvdC+JywgJ9C30LTQtdGB0YwnLCAn0YHQtNC10LvQsNC7JywgJ9GB0LTQtdC70LDRjicsICfRgdC00LXQu9Cw0L0nLAogICAgICAgICckMSQyLCQzJDQkNScgICAgICAgIAogICAgICAgICk7CgovLyDQktGL0LLQvtC00LjQvCDQutGD0YHQvtC6INGC0LXQutGB0YLQsCDRgSDQvtGI0LjQsdC60L7QuQpmdW5jdGlvbiBmaW5kTWlzdGFrZSAoJHJlZ2V4cEFycmF5LCAkdGV4dCkgewogICAgCiAgICBmb3JlYWNoICgkcmVnZXhwQXJyYXkgYXMgJHJlZ2V4cCA9PiAkZGVzY3Jpb3Rpb24pIHsgICAgICAgCiAgICAKICAgICAgICBpZiAocHJlZ19tYXRjaF9hbGwoJHJlZ2V4cCwgJHRleHQsICRyZXN1bHQsIFBSRUdfU0VUX09SREVSKSkgewogICAgICAgICAgICAKICAgICAgICAgICAgZWNobyAiXG7QntGI0LjQsdC60LA6IHskZGVzY3Jpb3Rpb259XG4iOwogICAgICAgICAgICAKICAgICAgICAgICAgZm9yZWFjaCAoJHJlc3VsdCBhcyAkZSkgewogICAgICAgICAgICAgICAgZWNobyAiKnskZVswXX0qXG4iOwogICAgICAgICAgICB9ICAgCiAgICAgICAgfQogICAgfQp9CmZpbmRNaXN0YWtlICgkcmVnZXhwQXJyYXksICR0ZXh0KTsKCi8vINCY0YHQv9GA0LDQstC70Y/QtdC8INC+0YjQuNCx0LrQuCDQsiDRgtC10LrRgdGC0LUKJHRleHQgPSBwcmVnX3JlcGxhY2UgKGFycmF5X2ZsaXAoJHJlZ2V4cEFycmF5KSwgJHJlcGxhY2VtZW50LCAkdGV4dCk7CmVjaG8gIlxu0JjRgdC/0YDQsNCy0LvQtdC90L3Ri9C5INGC0LXQutGB0YI6XG57JHRleHR9IjsKCj8+Cg==