如何使用PHP获取字符串的第一个字符包含特殊字符?

Ske*_*tor 3 php string character special-characters

我曾经string[0]缩短并显示用户名/姓氏的第一个字符.在用户的名字以ö,ä,ü等特殊字符开头之前,它一直很有效.

例如:

$name = 'über';
echo $name[0];
// echoes nothing
Run Code Online (Sandbox Code Playgroud)

与此同时我正在使用mb_substr($string, 0, 1).但我真的很想念$name[0]:).它更快更短.我仍然想知道原因是什么,以及是否有办法将此语法与特殊字符一起使用.

Pra*_*man 7

该字符ü不是单字节字符.它是一个多字节(两个字节)字符.

烧焦

您正在尝试访问字符串的第一个字节,因此它不起作用.正是出于这个原因,mb_substr已经设计好了.

substr()根据字符数执行多字节安全操作.位置从str的开头计算.第一个字符的位置为0.第二个字符的位置为1,依此类推.

如果你只是想做$name[0],它会得到多字节字符的第一个字符,它只是一个空字符串或一个控制字符来显示..上面的字符u.(以它为例,比如..+ u= ü).