Solution pour utiliser des expressions emoji dans des projets php

*文
Libérer: 2023-03-18 21:58:01
original
2251 Les gens l'ont consulté

Dans la vie quotidienne, il arrive souvent que le contenu envoyé par les utilisateurs contienne des expressions emoji s'il n'est pas traité, il sera tronqué lors de son affichage. Par conséquent, cet article présente plusieurs méthodes de traitement impliquant des expressions emoji dans le développement PHP WeChat. J'espère que cela aide tout le monde.

Contexte

Lorsque vous développez WeChat, vous constaterez que le stockage des surnoms WeChat est essentiel.

Mais ce foutu WeChat prend en charge les expressions emoji comme surnoms, ce qui est un peu pénible.

Généralement, lors de la conception des tables Mysql, le jeu de caractères UTF8 est utilisé. Déplacez le champ du pseudo avec emoji à l'intérieur de insert et il disparaît, et le champ entier devient une chaîne vide. Que se passe-t-il?

Il s'avère que le jeu de caractères utf8 de Mysql est de 3 octets, tandis que celui des emoji est de 4 octets, donc le surnom complet ne peut pas être stocké. Ce qu'il faut faire? Permettez-moi de vous présenter plusieurs méthodes

Solutions

1 Utilisez le jeu de caractères utf8mb4

Si votre version MySQL>=5.5.3, vous pouvez directement mettre à niveau utf8 vers le jeu de caractères utf8mb4
. Cet encodage utf8 à 4 octets est parfaitement compatible avec l'ancien jeu de caractères utf8 à 3 octets et peut stocker directement des expressions emoji. Quant à la perte de performances causée par l'augmentation du nombre d'octets, j'ai lu quelques critiques et elle est presque négligeable

2 Utilisez l'encodage base64

Si vous ne pouvez pas utiliser utf8mb4. pour une raison quelconque, vous pouvez également utiliser

pour enregistrer le pays. base64L'utilisation de fonctions telles que
pour encoder les emoji peut être directement stockée dans l'ensemble d'octets utf8 dans la table de données, il suffit de les décoder lors de leur suppression. base64_encode

3. Débarrassez-vous des expressions emoji

Les expressions emoji sont une chose gênante Même si vous pouvez les stocker, elles peuvent ne pas être parfaites. Sur des plateformes autres qu'iOS, comme PC ou Android. Si vous devez afficher des emoji, vous devez préparer de nombreuses images emoji et utiliser une bibliothèque frontale tierce. Même ainsi, il peut être impossible de les afficher car les images emoji ne sont pas suffisamment complètes. Dans la plupart des scénarios professionnels, les emoji ne sont pas nécessaires. Nous pouvons envisager de nous en débarrasser de manière appropriée et économiser divers coûts

Après de nombreuses recherches sur Google, nous avons finalement trouvé un code fiable et utilisable :

// 过滤掉emoji表情
function filterEmoji($str)
{
 $str = preg_replace_callback(
   '/./u',
   function (array $match) {
    return strlen($match[0]) >= 4 ? '' : $match[0];
   },
   $str);

  return $str;
 }
Copier après la connexion

Recommandations associées :

Comment générer un dictionnaire de données MySQL en php

php implémente la fonction de statistiques de mots

Comment PHP gère les données binaires

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:
source:php.cn
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!