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://pjax.vip/171.html
正文到此结束

热门推荐

发表吐槽

你肿么看?

你还可以输入 250 / 250 个字

呵呵 哈哈 吐舌 开心 笑眼 可怜 乖 啊 你懂得 不高兴 生气 汗 黑线 哭 真棒 阴险 鄙视 酷 滑稽 纳尼 疑问 委屈 惊讶 勉强

评论信息框
可使用QQ号实时获取昵称+头像

私密评论

吃奶的力气提交吐槽中...


既然没有吐槽,那就赶紧抢沙发吧!