我编写了一个脚本,将用户全名转换为“名字+姓氏的第一个首字母”。但是当用户的姓氏以“ÆØ”或“Å”开头时,脚本会将这些字符转换为“&”。防爆。 “BarbaraØstergaard”回归“Barbara&。”。
if (empty($user->first_name) && empty($user->last_name)) {
$full_name = "Anonymous teacher";
$url = "anonymous-teacher";
} else {
$name = $user->first_name . ' ' . $user->last_name;
$name = explode(" ", $name);
$full_name = $name[0]." ".$name[1][0].".";
$url = strtolower($name[0]."-".$name[1][0]);
}
答案 0 :(得分:1)
由于您使用的是UTF-8字符,因此解析像数组一样的字符无法正常工作。
这应解决您的问题并返回第二个单词的第一个字符:
mb_substr( $name[1], 0, 1,'UTF8');
工作示例:
$name = "Barbara Østergaard";
$name = explode(" ", $name);
echo $name[0]." ".mb_substr( $name[1], 0, 1,'UTF8');.".";
答案 1 :(得分:-2)
在名称
上使用html_entity_decode()