Maison  >  Article  >  PHP gère les expressions emoji en caractères (jugement/suppression/stockage)

PHP gère les expressions emoji en caractères (jugement/suppression/stockage)

藏色散人
藏色散人avant
2020-07-08 13:21:224757parcourir

PHP gère les expressions emoji en caractères (jugement/suppression/stockage)

Répertoire

  • Déterminer si la chaîne contient des expressions emoji
  • Supprimer les expressions emoji dans la chaîne
  • Le stockage des chaînes contenant des expressions emoji dans MySQL

Les expressions emoji codées en utf-8 ou certains caractères spéciaux occupent 4 octets. Les caractères chinois courants codés en UTF-8 occupent 3 octets.

Déterminer si la chaîne contient des expressions emoji

Trois fonctions PHP intégrées :

  • 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 的长度。

La fonction est la suivante :

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;
}

Supprimer les emoji du string La fonction émoticône

est la suivante :

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);
}

Stockage des chaînes contenant des expressions emoji dans MySQL

MySQL utilise des caractères utf8mb4. ensemble.

2. PHP base64 encode la chaîne, puis décode la chaîne lors de sa récupération dans la base de données.

3. Supprimez directement les expressions emoji de la chaîne (cette méthode est simple et grossière)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer
Article précédent:Que signifient PC et mobile ?Article suivant:Que signifient PC et mobile ?