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

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

藏色散人
Libérer: 2020-07-08 13:21:22
avant
4846 Les gens l'ont consulté

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。
Copier après la connexion
  • 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 中指定的部分。
Copier après la connexion
  • strlen
int strlen ( string $string )

// 返回给定的字符串 string 的长度。
Copier après la connexion

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;
}
Copier après la connexion

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);
}
Copier après la connexion

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!

Étiquettes associées:
php
source:cnblogs.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal