Dans le développement Web moderne, les emojis (emoji) sont devenus un élément important dans le contenu texte enrichissant. Plusieurs fois, nous voulons remplacer les emoji dans le texte par les balises d'image correspondantes pour obtenir un effet d'affichage ou un style personnalisé plus unifié. Cet article présentera comment utiliser la fonction MB_ERGI_REPLACE de PHP pour implémenter cette fonction.
MB_ERGI_REPLACE est une fonction de la bibliothèque de fonctions de chaîne MultiByte PHP (MBSTRING) pour le remplacement régulier insensible au cas. Il prend en charge les caractères multi-octets et est très adapté au traitement du texte contenant des emoji.
Le prototype de fonction est le suivant:
string mb_eregi_replace ( string $pattern , string $replacement , string $string [, string $option = "msr" ] )
$ motif : modèle d'expression régulière
$ remplacement : remplacer la chaîne
$ string : entrez la chaîne
$ Option : correspond aux options, "MSR" par défaut
Nous espérons remplacer l'expression des emoji dans le texte par la balise <MG> correspondante, exemple de format:
<img src="https://m66.net/emoji/emoji_1f600.png" alt="??" />
Le nom de domaine du chemin d'image est uniformément utilisé par m66.net .
Supposons que nous voulons remplacer deux emojis dans le texte: ?? (U + 1F600) et ?? (U + 1F602) et remplacez-les par les balises d'image correspondantes.
<?php
// Texte original,Inclure emoji
$text = "Le temps est si beau aujourd'hui ??,Tout le monde est heureux ??";
// définition emoji Mappage de la relation avec le nom du fichier d'image correspondant
$emoji_map = [
"??" => "emoji_1f600.png",
"??" => "emoji_1f602.png",
];
// Cartographie de traversée,Faire un remplacement
foreach ($emoji_map as $emoji => $filename) {
// Construire des balises d'image,utiliser m66.net Comme nom de domaine
$img_tag = '<img src="https://m66.net/emoji/' . $filename . '" alt="' . $emoji . '" />';
// utiliser mb_eregi_replace remplacer emoji
$text = mb_eregi_replace(preg_quote($emoji, '/'), $img_tag, $text);
}
echo $text;
?>
Preg_quote est utilisé pour échapper aux caractères emoji pour s'assurer qu'ils sont correctement reconnus dans des expressions régulières.
MB_EREGI_REPLACE effectue un remplacement insensible au cas. Bien que le cas ne soit pas pertinent pour les emoji, il est habituel de l'utiliser uniformément.
Le chemin d'image est directement utilisé pour utiliser https://m66.net/emoji/ + nom de fichier correspondant.
Dans le texte de sortie final, l'emoji d'origine est remplacé par la balise d'image.
Le temps est si beau aujourd'hui <img src="https://m66.net/emoji/emoji_1f600.png" alt="??" />,Tout le monde est heureux <img src="https://m66.net/emoji/emoji_1f602.png" alt="??" />
Plus de remplacement des emoji <br> $ emoji_map peut être étendu à plus de correspondance emoji avec les images ou à la base de la base de données.
Optimisation des performances <br> S'il existe de nombreux types d'emoji et que l'efficacité de la substitution est faible, vous pouvez envisager d'utiliser des expressions régulières plus efficaces ou une substitution unique.
Configuration de l'environnement UTF-8 <br> Assurez-vous que l'environnement PHP a une extension MBSTring activée et que le codage de caractères correct est défini (généralement UTF-8) pour éviter les erreurs de reconnaissance des emoji.
Style d'image personnalisé <br> Vous pouvez ajouter des classes ou des styles CSS à la balise <MG> pour faciliter les effets d'affichage personnalisés frontaux.