php 处理 emoji 表情的两种方法

    选择打赏方式

在文章的开头,我们先来谈谈,为什么要处理emoji表情:

1.有的人QQ名喜欢放些emoji上去,然后在QQ登录之后,得到回调数据,将nickname存到数据库的时候就会报错。

2.在比如做网页交流功能时,总会有人情不自禁的放些表情上去,可我们没办法写进数据库或者说能写进去也没办法正常读取。

为什么不能正常处理emojo表情?

原理: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;
}
写在最后:以上两种方法不能说完全杜绝,总会有些新版emoji处理不了,如果你也有别的更好的方法,不妨分享一下~

版权声明:若无特殊注明,本文为《傲世》原创,转载请保留文章出处。
本文链接:https://www.recho.cn/169.html
如您对本文章内容有所疑问、反馈或补充,欢迎通过邮箱:admin@h2fast.cn 联系我们!
正文到此结束

热门推荐