$latinToCyrillic=array(// Массив для замены текста
'A'=>'А',
'a'=>'а',
'o'=>'о',
'c'=>'с'
);
$matchesForText=array();// Массив для найденых слов без указания ошибки
$matchesForResult=array();// Массив для найденных слов уже с указанным местом ошибки
$regexpForText='/([а-я]*)([a-z]+)([а-я]*)/ui';// Регулярное выражение для поиска слов в тексте в которых есть ошибка
$count1=preg_match_all($regexpForText,$text,$matchesForText);// Тут находятся слова с ошибками и закидываются в массив
$result=preg_replace($regexpForText,'$1[$2]$3',$text);// Тут находятся слова и выделяются места с ошибками, получается новый текст с выделенными ошибками под именем result
$regexpForTextResult='/([а-я]*)\[([a-z]+)\]([а-я]*)/ui';// Реулярное выражение для поиска слов с указанными ошибками
$count2=preg_match_all($regexpForTextResult,$result,$matchesForResult);// Тут находятся слова с выделенными ошибками
Опечатка в слове кaнцелярских:к[a]нцелярских
Опечатка в слове тoваров:т[o]варов
Опечатка в слове Aвгуст:[A]вгуст
Опечатка в слове паленo:пален[o]
Опечатка в слове мяco:мя[co]
Опечатка в слове гoвядины:г[o]вядины
Опечатка в слове выпoлнение:вып[o]лнение
Опечатка в слове рабoт:раб[o]т
Опечатка в слове комплекснoму:комплексн[o]му
Опечатка в слове бecкостн:б[ec]костн
Опечатка в слове oe:[oe]
Опечатка в слове двoр:дв[o]р
Опечатка в слове oвой:[o]вой
Новый текст уже без латинских букв --> канцелярских товаров Август палено
мясо говядины
выполнение работ
комплексному
бeскостноe и дворовой