<?php
$text = <<<EOF
размещение  HELLO  государственного заказа на право заключение государственного контракта на выпoлнение рабoт по комплекснoму благоустрoйству двoрoвой территoрии по адресу: ул.Гурьянoва д.2 к.2
EOF;
$regexp = "/(^|\\s)([\\S]*)([A-z])([\\S]*)(\\s|$)/";
$matches = array();

$decryptTable = array(
		'e' => 'е',		'y' => 'у',
		'o' => 'о',		'p' => 'р',
		'a' => 'а',		'x' => 'х',
		'c' => 'с',		'E' => 'Е',
		'T' => 'Т',		'O' => 'О',
		'P' => 'Р',		'A' => 'А',
		'H' => 'Н',		'K' => 'К',
		'X' => 'Х',		'C' => 'С',
		'B' => 'В',		'M' => 'М'
		);

if (preg_match_all($regexp, $text, $matches, PREG_SET_ORDER)) {
	foreach ($matches as $word){
		$fixed = preg_replace($regexp, '$2'.strtr($word[3], $decryptTable).'$4', $word[0]);
		$error = preg_replace($regexp, '$2[$3]$4', $word[0]);
		echo "Внезапная латиница вот здесь - {$error} => {$fixed}\n";
	}
	echo("Если заменить всю латиницу кириллицей, то получится:\n".preg_replace_callback("/[A-z]/", 
	function ($matches) {
		global $decryptTable; //расширяем скоуп функции, чтобы она видела глобальную табличку для перевода букв
		return strtr($matches[0], $decryptTable);
	}, $text));
}
