Heim  >  Artikel  >  Backend-Entwicklung  >  Lösung zur Verwendung von Emoji-Ausdrücken in PHP-Projekten

Lösung zur Verwendung von Emoji-Ausdrücken in PHP-Projekten

*文
*文Original
2018-01-02 13:14:042323Durchsuche

Im täglichen Leben kommt es häufig vor, dass der von Benutzern gesendete Inhalt Emoji-Ausdrücke enthält. Wenn er nicht verarbeitet wird, wird er bei der Anzeige verstümmelt. Daher werden in diesem Artikel verschiedene Verarbeitungsmethoden für Emoji-Ausdrücke in der PHP-WeChat-Entwicklung vorgestellt. Ich hoffe, es hilft allen.

Hintergrund

Wenn Sie WeChat entwickeln, werden Sie feststellen, dass das Speichern von WeChat-Spitznamen unerlässlich ist.

Aber der verdammte WeChat unterstützt Emoji-Ausdrücke als Spitznamen, was etwas schmerzhaft ist

Im Allgemeinen wird beim Entwerfen von MySQL-Tabellen der UTF8-Zeichensatz verwendet. Verschieben Sie das Spitznamenfeld mit dem Emoji in insert und es verschwindet und das gesamte Feld wird zu einer leeren Zeichenfolge. Was ist los?

Es stellt sich heraus, dass der UTF8-Zeichensatz von MySQL 3 Byte groß ist, während Emoji 4 Byte groß ist, sodass nicht der gesamte Spitzname gespeichert werden kann. Was zu tun? Lassen Sie mich mehrere Methoden vorstellen

Lösungen

1. Verwenden Sie den utf8mb4-Zeichensatz

Wenn Ihre MySQL-Version>=5.5.3 , Sie können utf8 direkt auf den utf8mb4-Zeichensatz
aktualisieren. Diese 4-Byte-UTF8-Kodierung ist perfekt kompatibel mit dem alten 3-Byte-UTF8-Zeichensatz und kann Emoji-Ausdrücke direkt speichern
Was den Leistungsverlust betrifft, der durch die Erhöhung der Bytes verursacht wird, habe ich einige Rezensionen gelesen und er ist nahezu vernachlässigbar

2. Verwenden Sie die Base64-Kodierung

Wenn Sie ihn nicht verwenden können Aus irgendeinem Grund können Sie base64 auch zum Speichern des Landes verwenden. Mit Funktionen wie
können Emojis direkt im utf8-Bytesatz gespeichert und beim Empfang einfach dekodiert werden raus base64_encode

3. Emoji-Ausdrücke loswerden

Emoji-Ausdrücke sind eine lästige Sache, aber sie sind möglicherweise nicht perfekt. Auf anderen Plattformen als iOS, wie PC oder Android. Wenn Sie Emojis anzeigen müssen, müssen Sie viele Emoji-Bilder vorbereiten und eine Front-End-Bibliothek eines Drittanbieters verwenden. Trotzdem ist die Anzeige möglicherweise immer noch unmöglich, da Emoji-Bilder nicht vollständig genug sind. In den meisten Geschäftsszenarien sind Emojis nicht erforderlich. Wir können darüber nachdenken, es angemessen loszuwerden und verschiedene Kosten zu sparen

Nach langem Suchen haben wir endlich einen zuverlässigen und verwendbaren Code gefunden:

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

  return $str;
 }

Verwandte Empfehlungen:

So generieren Sie ein MySQL-Datenwörterbuch in PHP

PHP implementiert die Wortstatistikfunktion

Wie PHP mit Binärdaten umgeht

Das obige ist der detaillierte Inhalt vonLösung zur Verwendung von Emoji-Ausdrücken in PHP-Projekten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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