ucfirst () не работает должным образом со скандинавскими символами

Как получить ucfirst() работа со скандинавскими персонажами?

$str = "SÄKYLÄ";
echo ucfirst(strtolower($str)); //prints SÄkylÄ

Одна возможность использования mb_convert_case() но я хотел бы знать, возможно ли это с помощью ucfirst()

$str = "SÄKYLÄ";
echo mb_convert_case($str, MB_CASE_TITLE, "UTF-8"); //prints Säkylä

Какая функция быстрее для заглавных букв?

0

Решение

Ваша проблема здесь не ucfirst() его strtolower(), Вы должны использовать mb_strtolower(), чтобы получить строку в нижнем регистре, например

echo ucfirst(mb_strtolower($str));
//^^^^^^^^^^^^^^ See here

Также вы можете найти многобайтовую версию ucfirst() в Комментарии от руководство:

Простые многобайтовые ucfirst ():

<?php

function my_mb_ucfirst($str) {
$fc = mb_strtoupper(mb_substr($str, 0, 1));
return $fc.mb_substr($str, 1);
}

Код от plemieux из руководства комментарий

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]