<?php
$regexp = "/(([а-я]+[a-z]+)|([a-z]+[а-я]+))\\ w*/ui" ; //Expression for searching latin letters among cyrillics in words
$wordRegexp = "/[a-z]/ui" ; //Expression for pick out latin letter and replaced by cyrillic
$string = "Пocтaвкa мяco гoвядины, бecкостнoe для нужд государственного бюджетного учреждения здравоохранения Республики Башкортостан Инфекционная клиническая больница № 4 города Уфа \n " ;
$matches = [ ] ; // array for pick words with latin letters
$subjects = [ ] ; // array for replaced latin letters
'a' => 'а' ,
'c' => 'с' ,
'o' => 'о' ,
'e' => 'е' ,
'y' => 'у' ,
'x' => 'х' ,
'p' => 'р' ,
) ; //array with replacement template
$matches = $matches [ 0 ] ; // All words are located in 0 array in array matches that operation rewrite array.
for ( $i = ( count ( $matches ) - 1 ) ; $i >= 0 ; $i -- ) { $problemWord = $matches [ $i ] ;
echo "Line: $problemWord \n " ; // just for check
$subjects = $subjects [ 0 ] ; // operation like in 20 line
for ( $j = ( count ( $subjects ) - 1 ) ; $j >= 0 ; $j -- ) { // pick out latin letters $problemLetter = $subjects [ $j ] ;
echo "Line_subjects: $problemLetter \n " ; // just for check
foreach ( $wordTemplate as $key => $value ) { // searching similar letter in tamplate
if ( $key == $problemLetter ) {
$letterRegexp = "/$key /ui" ;
$problemWord = preg_replace ( $letterRegexp , "[{$value} ]" , $problemWord ) ; }
}
}
echo "problemWord after foreach: $problemWord \n " ;
}
?>
PD9waHAKCmVycm9yX3JlcG9ydGluZygtMSk7CgokcmVnZXhwID0gIi8oKFvQsC3Rj10rW2Etel0rKXwoW2Etel0rW9CwLdGPXSspKVxcdyovdWkiOy8vRXhwcmVzc2lvbiBmb3Igc2VhcmNoaW5nIGxhdGluIGxldHRlcnMgYW1vbmcgY3lyaWxsaWNzIGluIHdvcmRzCiR3b3JkUmVnZXhwID0gIi9bYS16XS91aSI7IC8vRXhwcmVzc2lvbiBmb3IgcGljayBvdXQgbGF0aW4gbGV0dGVyIGFuZCByZXBsYWNlZCBieSBjeXJpbGxpYwokc3RyaW5nID0gItCfb2PRgmHQstC6YSDQvNGPY28g0LNv0LLRj9C00LjQvdGLLCDQsWVj0LrQvtGB0YLQvW9lINC00LvRjyDQvdGD0LbQtCDQs9C+0YHRg9C00LDRgNGB0YLQstC10L3QvdC+0LPQviDQsdGO0LTQttC10YLQvdC+0LPQviDRg9GH0YDQtdC20LTQtdC90LjRjyDQt9C00YDQsNCy0L7QvtGF0YDQsNC90LXQvdC40Y8g0KDQtdGB0L/Rg9Cx0LvQuNC60Lgg0JHQsNGI0LrQvtGA0YLQvtGB0YLQsNC9INCY0L3RhNC10LrRhtC40L7QvdC90LDRjyDQutC70LjQvdC40YfQtdGB0LrQsNGPINCx0L7Qu9GM0L3QuNGG0LAg4oSWIDQg0LPQvtGA0L7QtNCwINCj0YTQsCAgXG4iOwokbWF0Y2hlcyA9IFtdOyAvLyBhcnJheSBmb3IgcGljayB3b3JkcyB3aXRoIGxhdGluIGxldHRlcnMKJHN1YmplY3RzID0gW107Ly8gYXJyYXkgZm9yIHJlcGxhY2VkIGxhdGluIGxldHRlcnMKJHdvcmRUZW1wbGF0ZSA9IGFycmF5KAogICdhJyA9PiAn0LAnLCAKICAnYycgPT4gJ9GBJywKICAnbycgPT4gJ9C+JywKICAnZScgPT4gJ9C1JywKICAneScgPT4gJ9GDJywKICAneCcgPT4gJ9GFJywKICAncCcgPT4gJ9GAJywKKTsvL2FycmF5IHdpdGggcmVwbGFjZW1lbnQgdGVtcGxhdGUKcHJlZ19tYXRjaF9hbGwoJHJlZ2V4cCwgJHN0cmluZywgJG1hdGNoZXMpOyAvLyBwaWNrIG91dCB3b3JkcwokbWF0Y2hlcyA9ICRtYXRjaGVzWzBdOyAvLyBBbGwgd29yZHMgYXJlIGxvY2F0ZWQgaW4gMCBhcnJheSBpbiBhcnJheSBtYXRjaGVzIHRoYXQgb3BlcmF0aW9uIHJld3JpdGUgYXJyYXkuCmZvciAoJGk9KGNvdW50KCRtYXRjaGVzKS0xKTsgJGk+PTA7ICRpLS0pIHsKICAkcHJvYmxlbVdvcmQgPSAkbWF0Y2hlc1skaV07CiAgZWNobyAiTGluZTogJHByb2JsZW1Xb3JkIFxuIjsgLy8ganVzdCBmb3IgY2hlY2sKICBwcmVnX21hdGNoX2FsbCgkd29yZFJlZ2V4cCwgJHByb2JsZW1Xb3JkLCAkc3ViamVjdHMpOwogICRzdWJqZWN0cyA9ICRzdWJqZWN0c1swXTsvLyBvcGVyYXRpb24gbGlrZSBpbiAyMCBsaW5lCiAgZm9yICgkaj0oY291bnQoJHN1YmplY3RzKS0xKTsgJGo+PTA7ICRqLS0pIHsgLy8gcGljayBvdXQgbGF0aW4gbGV0dGVycwogICAgJHByb2JsZW1MZXR0ZXIgPSAkc3ViamVjdHNbJGpdOwogICAgZWNobyAiTGluZV9zdWJqZWN0czogJHByb2JsZW1MZXR0ZXIgXG4iOy8vIGp1c3QgZm9yIGNoZWNrCiAgICBmb3JlYWNoICgkd29yZFRlbXBsYXRlIGFzICRrZXkgPT4gJHZhbHVlKSB7IC8vIHNlYXJjaGluZyBzaW1pbGFyIGxldHRlciBpbiB0YW1wbGF0ZSAKICAgICAgaWYgKCRrZXkgPT0gJHByb2JsZW1MZXR0ZXIpIHsKICAgICAgICAkbGV0dGVyUmVnZXhwID0gIi8ka2V5L3VpIjsKICAgICAgICAkcHJvYmxlbVdvcmQgPSBwcmVnX3JlcGxhY2UoJGxldHRlclJlZ2V4cCwgIlt7JHZhbHVlfV0iLCAkcHJvYmxlbVdvcmQpOwogICAgICB9CiAgICB9CiAgfQogIGVjaG8gInByb2JsZW1Xb3JkIGFmdGVyIGZvcmVhY2g6ICRwcm9ibGVtV29yZCBcbiI7Cn0gCj8+