Возможно ли в PHP сравнивать строки thoses:
Æther == AEther == Aether
Я бы хотел получить положительный результат от этой эквивалентности
Я действительно пробовал несколько вещей, но без реального успеха:
Замена Æ и любого специального символа на Ae с помощью strtr (плохая производительность, и я предпочел бы сохранить строку как есть)
Используя strcmp / strcasecmp, это устраняет проблему с колпачками, но у меня все еще есть проблемы со всеми символами UTF-8
То, что я пытаюсь достичь, состоит в том, чтобы разобрать список элементов, извлеченных из json, и сопоставить с каким-либо другим json-файлом, некоторые могут быть написаны по-разному (utf8 или non utf8, caps и т. Д.), И поэтому, пока, единственный способ Я решил сделать это, чтобы сделать третьего json следующим образом:
{ "match": { "name": "Unravel the \u00c6ther" }, "replace": { "name": "Unravel the aether" }
И я заменю базовую строку на corect one, но я бы хотел найти способ автоматизировать процесс.
Вы можете использовать функцию транслитерата iconv:
iconv('utf8', 'ASCII//TRANSLIT', 'Æther') == 'Aether';
Некоторым системам Windows может потребоваться использование «utf-8» вместо «utf8».
Вам нужно написать эту функцию. Я даю вам два намека:
Эта две функции могут помочь вам начать;)
Почему бы не использовать str_replace()
чтобы заменить Æ на AE. Затем используйте 'strtolower ()', чтобы преобразовать обе строки в нижний регистр и сравнить …