Как сравнить 2 строки с разной кодировкой и разными символами Юникода в PHP - PullRequest
0 голосов
/ 01 октября 2019

Мне нужно пройти международную аккредитацию по имени и фамилии. Но проблема в том, что мне нужно вернуть TRUE, даже если символы разные.

ПРИМЕР:

    $str1 = 'Bożydar Kamiński';
    $str2 = 'BOZYDAR KAMINSKI';
    // I need this to be TRUE
    if ($str1 == $str2) {
        echo 'YOUR BUNNY WROTE';
    }

Есть ли некоторые php-функции по умолчанию для преобразования строки UTF-8 с символами Юникода(str1) к простым латинским буквам?

Ответы [ 2 ]

0 голосов
/ 02 октября 2019
$coll = Collator::create('');
$coll->setStrength(Collator::PRIMARY);
var_dump(0 == $coll->compare(
    'Bożydar Kamiński',
    'BOZYDAR KAMINSKI'
)); // bool(true)
0 голосов
/ 01 октября 2019

Если вам известны возможные различия в кодировщике UTF-8, вы можете создать свой собственный декодер. Вы можете создать таблицу со всеми возможными странными символами, и в функции вы должны выполнить сравнение, а затем обменять на эквивалент.

...