PHP爆炸将ÆØÅ转换为&

时间:2015-10-28 13:16:23

标签: php explode

我编写了一个脚本,将用户全名转换为“名字+姓氏的第一个首字母”。但是当用户的姓氏以“ÆØ”或“Å”开头时,脚本会将这些字符转换为“&”。防爆。 “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]);
}

2 个答案:

答案 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()

示例:How can i decode my html entities chars (ÆØÅ)?