>  기사  >  PHP는 이모티콘 표현을 문자로 처리합니다(판단/제거/저장).

PHP는 이모티콘 표현을 문자로 처리합니다(판단/제거/저장).

藏色散人
藏色散人앞으로
2020-07-08 13:21:224757검색

PHP는 이모티콘 표현을 문자로 처리합니다(판단/제거/저장).

Directory

  • 문자열에 이모티콘 표현이 포함되어 있는지 확인
  • 문자열에서 이모티콘 표현 제거
  • MySQL에서 이모티콘 표현이 포함된 문자열 저장

utf-8로 인코딩된 이모티콘 표현 또는 일부 특수 문자가 차지 4바이트. UTF-8로 인코딩된 일반 중국어 문자는 3바이트를 차지합니다.

문자열에 이모티콘 표현이 포함되어 있는지 확인

세 가지 PHP 내장 함수:

  • mb_strlen
mixed mb_strlen ( string $str [, string $encoding = mb_internal_encoding() ] )


// 返回具有 encoding 编码的字符串 str 包含的字符数。 多字节的字符被计为 1。
// 如果给定的 encoding 无效则返回 FALSE。
  • mb_substr
string mb_substr ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] )

// 根据字符数执行一个多字节安全的 substr() 操作。 位置是从 str 的开始位置进行计数。 第一个字符的位置是 0。第二个字符的位置是 1。
// mb_substr() 函数根据 start 和 length 参数返回 str 中指定的部分。
  • strlen
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, &#39;utf-8&#39;);
        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, &#39;utf-8&#39;);
        if (strlen($mbSubstr) >= 4) {
            continue;
        }
        $strArr[] = $mbSubstr;
    }
    
    return implode(&#39;&#39;, $strArr);
}

MySQL에서 이모티콘 표현이 포함된 문자열 저장

1. MySQL은 utf8mb4 문자 집합을 사용합니다.

2. PHP base64는 문자열을 인코딩한 다음 데이터베이스에서 가져올 때 문자열을 디코딩합니다.

3. 문자열에서 이모티콘 표현을 직접 제거합니다(이 방법은 간단하고 투박합니다)

위 내용은 PHP는 이모티콘 표현을 문자로 처리합니다(판단/제거/저장).의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제