1. 程式人生 > 實用技巧 >判斷字串是否包含😈emoji表情

判斷字串是否包含😈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