php处理字符串中的emoji

2022-08-30 11:09:48 浏览数 (2)

为什么要处理

有的人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

0 人点赞