为什么要处理
有的人QQ名喜欢放两个emoji,然后在QQ登录之后,将nickname存到数据库的时候就会报错,这个时候我们就需要处理一下这个emoji了。 原理:emoji通常占4个字节,而中文的话是3个字节,我们可以从这里入手。
方法一
代码语言:javascript复制function removeEmoji($str){
$str = preg_replace_callback('/./u',function (array $match) {
return strlen($match[0])>=4?'':$match[0];
},$str);
return $str;
}
方法二
代码语言:javascript复制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://moleft.cn/post-151.html