phpexcel导出微信昵称特殊字符emoji处理方法

在使用 phpexcel 导出 excel 时,如果字段里有微信昵称的字符的话,可能导出后会出现错误,无法正常打开 excel 表格导致数据丢失无法显示。

这时需要对微信昵称字符做处理

1
2
3
4
5
6
function filterEmoji($emojiStr){
$emojiStr = preg_replace_callback('/./u',function(array $match){
return strlen($match[0]) >= 4 ? '' : $match[0];
},$emojiStr);
return $emojiStr;
}
  • /u 表示按 unicode(utf-8)匹配(主要针对多字节比如汉字)
  • /i 表示不区分大小写(如果表达式里面有 a, 那么 A 也是匹配对象)
  • /s 表示将字符串视为单行来匹配

大于 4 个长度的多字节字符同微信昵称字符