Сравнение строк, в которых присутствуют кириллические буквы, внешне неотличимые от латиницы
Есть $str1 = 'mAsha'; $str2 = 'mАsha'; Строки выглядят идентично, только вот в $str2 большая А написана кириллицей, а в $str1 все буквы латинские. Возникла необходимость в компараторе с функционалом человеческого глаза: если текст выглядит идентично, должно вернуться тру. Есть ли элегантное решение?
Ответы (1 шт):
Автор решения: HMRDevil
→ Ссылка
Воспользуйтесь конвертером букв. Что-то вроде такого:
function convert($string)
{
// Ключи массива - русские буквы, значения - английские
$converter = ['А' => 'A', 'а' => 'a', 'Е' => 'E', 'е' => 'e']; // и т.д и т.п.
$convertedString = strtr($string, $converter);
return $convertedString;
}
$var1 = "Swager"; // все буквы англ
$var2 = "Swаgеr"; // русские "а" и "е"
if (strcmp(convert($var1), convert($var2)) == 0)
{
echo '$var1 и $var2 равны';
}