MENU

php处理字符串中的emoji

• July 12, 2020 • 教程

为什么要处理

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

最后的话

我比较喜欢第二种方法,毕竟省篇幅,正则表达式一行就解决了

Archives 下载海报
QR Code for this page
Tipping QR Code