用于多字节字符编码的 ucfirst() 函数

2022-08-30 08:39:25

我问过关于斯特托洛弗函数的问题。但是当使用外语字符时,它不会将它们转换为大写,所以我必须使用:

 mb_strtolower($a,"utf8");

但是,如果我想使用函数,我该怎么办?我没有找到任何类似的功能,我可以在其中设置编码类型。ucfirst()


答案 1

正如您已经注意到的那样,没有功能。你可以用两个来假一个:mb_ucfirstmb_ucfirstmb_substr

function mb_ucfirst($string, $encoding)
{
    $firstChar = mb_substr($string, 0, 1, $encoding);
    $then = mb_substr($string, 1, null, $encoding);
    return mb_strtoupper($firstChar, $encoding) . $then;
}

答案 2

这是更简洁的解决方案,尽管它与函数非常相似:ucwords

$final_string = mb_convert_case($your_string, MB_CASE_TITLE, 'UTF-8');

如果您需要将字符串大写为一个单词,这是最好的解决方案。


推荐