В сети нашел синонимайзер на php, но он не учитывает регистр букв. Подскажите как заставить его распознавать автоматически регистр букв.
В данном случае слово "Мобильный" заменяется низким регистром, а желательно с большим регистром так как заменяемое слово идет с большим регистром.
function _strtr($str,$repl_array){
$keys = array_map(function($key){
return '#'.$key.'#ui';
},array_keys($repl_array));
$values = array_values($repl_array);
$values = array_map(function($value){
$variants = explode('|', $value);
return $variants[rand(0, count($variants) - 1)];
},array_values($repl_array));
return preg_replace($keys,$values,$str);
}
echo _strtr('Мобильный телефон Samsung обменяю на новый iphone',
array(
'мобильный'=>'сотовый'
)
);
Как вариант:
return '#'.$key.'#ui';
Заменить на:
return '#'.$key.'#u';
И отправлять такой массив:
echo _strtr('Мобильный телефон Samsung обменяю на новый iphone', array(
'мобильный' => 'сотовый',
'Мобильный' => 'Сотовый',
)
);
Все остальное будут уже костыли
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости