Скорее всего проблема в мультибайтовой кодировке (юникод).
Попробуйте для регистронезависимого сравнения строк использовать мультибайтовую версию функции strcasecmp
function mb_strcasecmp($str1, $str2, $encoding = null) {
if (null === $encoding) { $encoding = mb_internal_encoding(); }
return strcmp(mb_strtoupper($str1, $encoding), mb_strtoupper($str2, $encoding));
}
Отсюда
php.net/manual/en/function.strcasecmp.php#107016