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

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

藏色散人
풀어 주다: 2020-07-08 13:21:22
앞으로
4849명이 탐색했습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
php
원천:cnblogs.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿