判斷字串是否包含😈emoji表情
阿新 • • 發佈:2020-10-29
在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; }
上面程式碼重點就是strlen
和mb_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); }