Directory
utf-8로 인코딩된 이모티콘 표현 또는 일부 특수 문자가 차지 4바이트. UTF-8로 인코딩된 일반 중국어 문자는 3바이트를 차지합니다.
문자열에 이모티콘 표현이 포함되어 있는지 확인
세 가지 PHP 내장 함수:
mixed mb_strlen ( string $str [, string $encoding = mb_internal_encoding() ] ) // 返回具有 encoding 编码的字符串 str 包含的字符数。 多字节的字符被计为 1。 // 如果给定的 encoding 无效则返回 FALSE。
string mb_substr ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] ) // 根据字符数执行一个多字节安全的 substr() 操作。 位置是从 str 的开始位置进行计数。 第一个字符的位置是 0。第二个字符的位置是 1。 // mb_substr() 函数根据 start 和 length 参数返回 str 中指定的部分。
int strlen ( string $string ) // 返回给定的字符串 string 的长度。
함수
function haveEmojiChar($str) { $mbLen = mb_strlen($str); $strArr = []; for ($i = 0; $i < $mbLen; $i++) { $strArr[] = mb_substr($str, $i, 1, 'utf-8'); if (strlen($strArr[$i]) >= 4) { return true; } } return false; }
문자 제거 문자열의 이모티콘 표현
함수는 다음과 같습니다.
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); }
MySQL에서 이모티콘 표현이 포함된 문자열 저장
1. MySQL은 utf8mb4 문자 집합을 사용합니다.
2. PHP base64는 문자열을 인코딩한 다음 데이터베이스에서 가져올 때 문자열을 디코딩합니다.
3. 문자열에서 이모티콘 표현을 직접 제거합니다(이 방법은 간단하고 투박합니다)
위 내용은 PHP는 이모티콘 표현을 문자로 처리합니다(판단/제거/저장).의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!