Heim > häufiges Problem > PHP verarbeitet Emoji-Ausdrücke in Zeichen (Beurteilung/Entfernung/Speicherung).

PHP verarbeitet Emoji-Ausdrücke in Zeichen (Beurteilung/Entfernung/Speicherung).

藏色散人
Freigeben: 2020-07-08 13:21:22
nach vorne
4789 Leute haben es durchsucht

PHP verarbeitet Emoji-Ausdrücke in Zeichen (Beurteilung/Entfernung/Speicherung).

Verzeichnis

  • Bestimmen Sie, ob die Zeichenfolge Emoji-Ausdrücke enthält
  • Entfernen Sie die Emoji-Ausdrücke in der Zeichenfolge
  • Die Speicherung von Zeichenfolgen, die Emoji-Ausdrücke in MySQL enthalten

UTF-8-codierte Emoji-Ausdrücke oder einige Sonderzeichen belegen 4 Bytes. In UTF-8 codierte gängige chinesische Zeichen belegen 3 Byte.

Bestimmen Sie, ob die Zeichenfolge Emoji-Ausdrücke enthält

Drei in PHP integrierte Funktionen:

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


// 返回具有 encoding 编码的字符串 str 包含的字符数。 多字节的字符被计为 1。
// 如果给定的 encoding 无效则返回 FALSE。
Nach dem Login kopieren
  • 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 中指定的部分。
Nach dem Login kopieren
  • strlen
int strlen ( string $string )

// 返回给定的字符串 string 的长度。
Nach dem Login kopieren

Die Funktion ist wie folgt:

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;
}
Nach dem Login kopieren

Emoji aus dem entfernen string Die Emoticon-Funktion

lautet wie folgt:

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);
}
Nach dem Login kopieren

Speicherung von Zeichenfolgen, die Emoji-Ausdrücke in MySQL enthalten

1. MySQL verwendet utf8mb4-Zeichen Satz.

2. PHP base64 kodiert den String und dekodiert ihn dann beim Abrufen aus der Datenbank.

3. Entfernen Sie Emoji-Ausdrücke direkt aus der Zeichenfolge (diese Methode ist einfach und grob)

Das obige ist der detaillierte Inhalt vonPHP verarbeitet Emoji-Ausdrücke in Zeichen (Beurteilung/Entfernung/Speicherung).. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:cnblogs.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage