<?php

$text = "Кaнцелярских тoваров на сумму oколо 100500 руб.";

$regexp = '/([а-яё]+)?([a-z]+)([а-яё]+)?/ui';
$matches = [];

if (preg_match_all($regexp, $text, $matches) > 0) {
	foreach ($matches[0] as $mistake) {
		$result = preg_replace($regexp, '$1[$2]$3', $mistake);
		echo "опечатка: {$mistake} - $result\n";
		
	}
}
$correct = array(
	'a' => 'а',
	'o' => 'о',
	'p' => 'р',
	'x' => 'х',
	'A' => 'А',
	'O' => 'О',
	'P' => 'Р',
	'X' => 'Х'
);
$correctText = strtr($text, $correct);
echo "Исправленный текст\n{$correctText}\n";
	
	
