判断字符串是否包含😈emoji表情

UTF-8编码下,一个中文占3个字节,而emoji或一些特殊字符占4个字节,我们可以以此来判断字符串是否包含emoji

function haveEmojiChar($str)
{
    $mbLen = mb_strlen($str);

    $strArr = [];
    $flag = false;
    for ($i = 0; $i < $mbLen; $i++) {
        $strArr[] = mb_substr($str, $i, 1, 'utf-8');
        if (strlen($strArr[$i]) >= 4) {
            $flag = true;
            break;
        }
    }
    return $flag;
}

上面代码重点就是strlenmb_strlen这两个函数。通过这个方法,我们稍微修改下就能删除字符串中的emoji表情

function removeEmojiChar($str)
{
    $mbLen = mb_strlen($str);
    
    $strArr = [];
    for ($i = 0; $i < $mbLen; $i++) {
        $mbSubstr = mb_substr($str, $i, 1, 'utf-8');
        if (strlen($mbSubstr) >= 4) {
            continue;
        }
        $strArr[] = $mbSubstr;
    }
    
    return implode('', $strArr);
}

参考:https://www.cnblogs.com/my3306/p/9849923.html

posted @ 2020-10-29 14:39  博客圆萌主  阅读(1466)  评论(0编辑  收藏  举报
个人博客 | 个人短链接平台