
为什么要处理
有的人QQ名喜欢放两个emoji,然后在QQ登录之后,将nickname存到数据库的时候就会报错,这个时候我们就需要处理一下这个emoji了。
原理:emoji通常占4个字节,而中文的话是3个字节,我们可以从这里入手。
方法一
function removeEmoji($str){
$str = preg_replace_callback('/./u',function (array $match) {
return strlen($match[0])>=4?'':$match[0];
},$str);
return $str;
}
方法二
function removeEmoji($str){
$str = preg_replace("/[\x{1F600}-\x{1F64F}\x{1F300}-\x{1F5FF}\x{1F680}-\x{1F6FF}\x{2600}-\x{26FF}\x{2700}-\x{27BF}]/u","",$str);
return $str;
}
最后的话
我比较喜欢第二种方法,毕竟省篇幅,正则表达式一行就解决了
如无特殊说明《php处理字符串中的emoji》为博主MoLeft原创,转载请注明原文链接为:https://www.moleft.cn/post-151.html