Възможно решение би било създаването на друга колона в базата данни до "artist", като "artist_normalized". Тук, докато попълвате таблицата, можете да вмъкнете "нормализирана" версия на низа. След това може да се извърши търсене в колоната artist_normalized.
Тестов код:
<?php
$transliterator = Transliterator::createFromRules(':: NFD; :: [:Nonspacing Mark:] Remove; :: NFC;', Transliterator::FORWARD);
$test = ['abcd', 'èe', '€', 'àòùìéëü', 'àòùìéëü', 'tiësto'];
foreach($test as $e) {
$normalized = $transliterator->transliterate($e);
echo $e. ' --> '.$normalized."\n";
}
?>
Резултат:
abcd --> abcd
èe --> ee
€ --> €
àòùìéëü --> aouieeu
àòùìéëü --> aouieeu
tiësto --> tiesto
Магията е направена от класа Transliterator. Посоченото правило изпълнява три действия:декомпозира низа, премахва диакритичните знаци и след това прекомпонира низа, канонизиран. Транслитераторът в PHP е изграден върху ICU, така че като правите това, разчитате на таблиците на библиотеката на ICU, които са завършени и надежден.
Забележка:това решение изисква PHP 5.4 или по-нова версия с intl разширение.