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

时间:2016-11-30 16:30:31

标签: php string character special-characters

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

例如:

$name = 'über';
echo $name[0];
// echoes nothing

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

1 个答案:

答案 0 :(得分:7)

字符ü不是单字节字符。它是一个多字节(双字节)字符。

char

您正在尝试访问字符串的第一个字节,因此它无法正常工作。正是出于这个原因,mb_substr已被设计出来。

  

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

如果您只是尝试$name[0],它会得到多字节字符的第一个字符,它只是一个空字符串或一个显示{{1}的控制字符在..之上。 (仅举例来说,例如u + .. = u)。