Heim Backend-Entwicklung PHP-Tutorial Einführung in eine Klassenbibliothek basierend auf einer PHP-Erweiterung zur Verarbeitung von Emoji-Methoden

Einführung in eine Klassenbibliothek basierend auf einer PHP-Erweiterung zur Verarbeitung von Emoji-Methoden

Aug 08, 2016 am 09:22 AM
emoji quot str

Einführung in CarmelaCarmela bietet eine Reihe vierteiliger UTF-8-Verarbeitungslösungen basierend auf PHP, PHP-Erweiterungen, JAVA, C und anderen Sprachen, wie z. B. Unterstützung für Common Emoji-TagsHintergrund: Das UTF-8-Format, das Emoji-Ausdruckszeichenfolgen enthält, wird direkt in die Datenbank eingefügt. Wenn die Datenbank nicht angepasst wurde, wird ein Fehler gemeldet Durch Ändern des Zeichensatzes der Datenbank und Tabelle in utf8mb4_general_ci kann dieses Problem vermieden werden. In vielen großen Systemen und Architekturen kann die Änderung des Zeichensatzes der Datenbank jedoch viele Probleme verursachen, wie z. B. die PC-seitige Anzeige und Kompatibilitätsprobleme zwischen neuen und alten Daten. Für diese Art von Problem gibt es eine andere Lösung, die darin besteht, vor dem Betreten der Datenbank zu ersetzen und nach dem Verlassen der Datenbank eine umgekehrte Ersetzung entsprechend dem Clienttyp durchzuführen. CarmelaCarmela bietet eine Lösung für die Verarbeitung von 4-teiligem UTF-8 basierend auf der PHP-Erweiterung, die UTF-8-Zeichen, die größer als 3 Byte sind, in UTF-8 in den UBB-Modus ersetzen kann, z als bestimmtes UTF-8-Zeichen 👤 (zur Vereinfachung der Anzeige wird der Kodierungsmodus des Emoji-Tags angezeigt), wie es nach der Ersetzung [u]1f464[/u] aussieht, wenn gleichzeitig aus der Datenbank gelesen wird , je nach Anforderung verschiedener Clients (iOS, Android, PC), eine umgekehrte Substitution durchzuführen. Der Name Carmela kommt von „Different Carmela“. Die Geschichtenreihe „Different Carmela“ erzählt die Abenteuergeschichten der Henne Carmela und ihrer Kinder Carmelido und Carmen Dinge auszuprobieren, an die andere nicht zu denken wagen. Installation1. Kompilieren und verpacken git clone https://github.com/ugg/Carmela /phpize ./configure --with-php-c/php-config-path make make install
  • Ändern Sie die Konfigurationsdatei

    vim /php.ini

  • Fügen Sie den folgenden Inhalt hinzu[carmela] extension=carmela.so Methode: carmela_str2ubb: Konvertieren Sie die Zeichenfolge, die das Emoji-Tag enthält, in den UBB-Modus, und die Ersetzung sieht so aus [u]1f464[ /u]. Ein Beispiel: $str = urldecode("This is test %F0%9F%98%9C+%F0%9F%98%99 by ugg"); echo "str:".$str."\n"; echo "ubb:".carmela_str2ubb($str)."\n"; Ausgabeergebnis: str:This is test xxxx(CSDN Emoji不能展示用XXXX代替) by ugg ubb:This is test [u]1f61c[/u] [u]1f619[/u] by ugg carmela_ubb2str: Enthält das in das UTF-8-Stringformat konvertierte ubb-Tag zur Übertragung auf die PC-Plattform You kann auf die Methode carmela_ubb2str in encode.class.php verweisen. Ein Beispiel: $str = urldecode("This is test %F0%9F%98%9C+%F0%9F%98%99 by ugg"); $str = carmela_str2ubb($str); echo "ubb:".$str."\n"; echo "str:".carmela_ubb2str($str)."\n"; Ausgabeergebnis: ubb:This is test [u]1f61c[/u] [u]1f619[/u] by ugg str:This is test(CSDN Emoji不能展示用XXXX代替) by uggcarmela_substr: Fängt eine Zeichenfolge ab, die Emoji-Zeichen mit einer angegebenen Zeichenlänge enthält . carmela_sububb: Fang die angegebene Länge von Zeichen aus der Zeichenfolge ab, die das ubb-Tag enthält. carmela_delstr: Emoji-Zeichen in der Zeichenfolge löschen, nicht strenger Modus, 3-Byte-Emoji-Zeichen können nicht gelöscht werden, werden hauptsächlich in einigen verwendet. carmela_delubb: Löscht das ubb-Tag in der Zeichenfolge, die das ubb-Tag enthält. Leistung使用PHP分别实现了两种方法,分别使用PHP的str_replace方法和PHP查找四字节emoji,进行替换的方法,以及PHP扩展方式,使用相同数据分别进行测试,测试效果如下。=========================== 方案1:PHP str_replace方式 ========================= =========== EMOJI TO STRING ========== TIME:781.94ms,处理行数: 100,处理字数:10100,处理字节数:31028 平均每行处理时间:7.819ms =========== STRING TO EMOJI ========== TIME:118.566ms,处理行数: 100,处理字数:18710,处理字节数:37793 平均每行处理时间:1.186ms =========================== 方案2:PHP字符查找方式 ========================= =========== EMOJI TO STRING ========== TIME:51.526ms,处理行数: 100,处理字数:10100,处理字节数:31028 平均每行处理时间:0.515ms =========== STRING TO EMOJI ========== TIME:27.959ms,处理行数: 100,处理字数:23092,处理字节数:41236 平均每行处理时间:0.28ms =========================== 方案3:PHP扩展方式 ========================= =========== EMOJI TO STRING ========== TIME:0.721ms,处理行数: 100,处理字数:10100,处理字节数:31028 平均每行处理时间:0.007ms =========== STRING TO EMOJI ========== TIME:0.956ms,处理行数: 100,处理字数:20308,处理字节数:38452 平均每行处理时间:0.01ms 从以上测试效果上来看,str_replace方式,性能非常的差。使用PHP直接编写替换函数方式,性能提升10倍多,而采用扩展方式后,性能提升明显,在把emoji从字符形式转换为ubb方式时,性能提升1000倍。以上测试数据通过create_file.php可以动态生成。本测试用例,生成100行数据,每行100个字符,100字符中可以包含3-10个emoji字符,进行测试的,直接运行benchmark.php 查看运行性能。原理处理四字节的emoji原理非常简单,通过字符对比找到emoji字符进行替换。难点就是在基本原理上如何提升性能,如何快速查找,替换。PHP扩展方式,为大家提供了一种思路,可以参考这种思路实现java,C#,js等等版本的。PC如何支持EMoji表情展示?在项目目录中的emoji目录下找到images目录,从web根目录创建emoji文件夹,把images文件夹整个拷贝到emoji文件下,调用encode.class.php里面的carmela_ubb2str方法,Util_Encode::carmela_ubb2str($str, "PC"); 即可在PC上展示Emoji表情,目前收集到的845个emoji表情,一些新的表情符号并没有纳入其中,当然,目前这种方法并没有写入PHP扩展中,性能相对来说并不高。Contact ugg.xchj@gmail.com for all questions

    以上就介绍了基于PHP扩展一种处理Emoji方法的类库介绍,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

    Erklärung dieser Website
    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

    Heiße KI -Werkzeuge

    Undresser.AI Undress

    Undresser.AI Undress

    KI-gestützte App zum Erstellen realistischer Aktfotos

    AI Clothes Remover

    AI Clothes Remover

    Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

    Undress AI Tool

    Undress AI Tool

    Ausziehbilder kostenlos

    Clothoff.io

    Clothoff.io

    KI-Kleiderentferner

    Video Face Swap

    Video Face Swap

    Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

    Heißer Artikel

    <🎜>: Bubble Gum Simulator Infinity - So erhalten und verwenden Sie Royal Keys
    3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
    Mandragora: Flüstern des Hexenbaum
    3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
    Nordhold: Fusionssystem, erklärt
    3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

    Heiße Werkzeuge

    Notepad++7.3.1

    Notepad++7.3.1

    Einfach zu bedienender und kostenloser Code-Editor

    SublimeText3 chinesische Version

    SublimeText3 chinesische Version

    Chinesische Version, sehr einfach zu bedienen

    Senden Sie Studio 13.0.1

    Senden Sie Studio 13.0.1

    Leistungsstarke integrierte PHP-Entwicklungsumgebung

    Dreamweaver CS6

    Dreamweaver CS6

    Visuelle Webentwicklungstools

    SublimeText3 Mac-Version

    SublimeText3 Mac-Version

    Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

    Heiße Themen

    Java-Tutorial
    1668
    14
    PHP-Tutorial
    1273
    29
    C#-Tutorial
    1256
    24
    Apple veröffentlicht iOS 17.4 Beta 1 und führt 118 neue Emojis ein, darunter Phoenix, Limette usw. Apple veröffentlicht iOS 17.4 Beta 1 und führt 118 neue Emojis ein, darunter Phoenix, Limette usw. Jan 26, 2024 am 08:24 AM

    Laut Berichten vom 26. Januar, laut ausländischen Technologiemedien Emojipedia, hat Apple im heute veröffentlichten iOS 17.4 Beta 1-Update neben wichtigen Verbesserungen wie Sideloading und App-Stores von Drittanbietern zum Testen in 27 EU-Ländern auch mehrere hinzugefügt neues Emoji. Das iOS 17.4 Beta 1-Update fügt Phönix, Limette, lächelnde Gesichter, die den Kopf auf und ab schütteln, sowie eine Reihe von Charakter-Emoticons hinzu, die den Weg weisen, aus dem von Unicode im September 2023 vorgeschlagenen Emoji 15.1-Update. Die vollständigen Emojis sind wie folgt angehängt: Dieses Update fügt insgesamt 118 Emojis hinzu, darunter 6 neue Emojis und 4 geschlechtsneutrale Familien-Emojis. Darüber hinaus gibt es 6 vorhandene Zeichenausdrücke

    So deaktivieren Sie Emojis in Win10 Education Edition So deaktivieren Sie Emojis in Win10 Education Edition Feb 24, 2024 pm 01:55 PM

    Emoji-Emoticons sind die neueste Eingabemethode, die zu Win10 Education Edition hinzugefügt wurde. Viele niedliche Emoticons machen das Chatten jedoch weniger langweilig. Heute zeige ich Ihnen, wie Sie Emojis in Win10 Education Edition deaktivieren . einführen. So deaktivieren Sie emoji1 in Win10 Education Edition. Zuerst müssen Sie mit der rechten Maustaste auf die Eingabemethode auf der rechten Seite der Taskleiste unten klicken. 2. Wählen Sie im Popup-Optionsfeld „Einstellungen“ aus, um die Benutzeroberfläche für die Spracheinstellung aufzurufen. 3. Wählen Sie in der Benutzeroberfläche die Option „Tasten“ und scrollen Sie nach unten, um „Bedienfeld für Emoticons und Symbole öffnen“ zu finden, wo Sie Emoji-Ausdrücke deaktivieren können. 4. Wenn andere Eingabemethoden installiert sind, können Sie in den Windows-Einstellungen die Benutzeroberfläche „Einstellungen und Sprache“ aufrufen und dann auswählen

    So geben Sie Huawei-Emojis ein So geben Sie Huawei-Emojis ein Sep 26, 2023 pm 01:31 PM

    Huawei-Emoji-Eingabemethode: 1. Huawei-Mobiltelefone sind mit einer Emoji-Tastatur ausgestattet. Sie können bei der Texteingabe zu dieser Tastatur wechseln. 2. Wenn Sie Emojis eingeben müssen, drücken Sie lange auf das Eingabefeld und wählen Sie dann „Eingabe“. „Methodeneinstellungen“: In den Eingabemethodeneinstellungen können Sie die mit dem System gelieferte Emoji-Eingabemethode finden und auswählen. 3. Sie können eine Emoji-Tastatur eines Drittanbieters herunterladen und verwenden und dann das gewünschte Emoji durchsuchen und auswählen Verwendung auf der Tastatur.

    php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

    php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

    In Python integrierte Quellcodeanalyse vom Typ str In Python integrierte Quellcodeanalyse vom Typ str May 09, 2023 pm 02:16 PM

    1Die Grundeinheit des Unicode-Computerspeichers ist das Byte, das aus 8 Bits besteht. Da Englisch nur aus 26 Buchstaben plus einer Reihe von Symbolen besteht, können englische Zeichen direkt in Bytes gespeichert werden. Andere Sprachen (wie Chinesisch, Japanisch, Koreanisch usw.) müssen jedoch aufgrund der großen Anzahl von Zeichen mehrere Bytes für die Codierung verwenden. Mit der Verbreitung der Computertechnologie entwickelt sich die Technologie zur Kodierung nicht-lateinischer Zeichen weiter, es gibt jedoch immer noch zwei wesentliche Einschränkungen: keine Unterstützung mehrerer Sprachen: Das Kodierungsschema einer Sprache kann nicht in einer anderen Sprache verwendet werden und es gibt keinen einheitlichen Standard: Beispielsweise gibt es auf Chinesisch viele Codierungsstandards wie GBK, GB2312, GB18030 usw. Da die Codierungsmethoden nicht einheitlich sind, müssen Entwickler zwischen verschiedenen Codierungen hin und her konvertieren, und es treten zwangsläufig viele Fehler auf.

    Die öffentliche Betaversion von iOS 15.4 und iPadOS 15.4 Beta 1 wurde veröffentlicht. Face ID kann auch dann verwendet werden, wenn Sie eine Maske tragen Die öffentliche Betaversion von iOS 15.4 und iPadOS 15.4 Beta 1 wurde veröffentlicht. Face ID kann auch dann verwendet werden, wenn Sie eine Maske tragen Apr 13, 2023 pm 11:01 PM

    Apple hat iOS 15.4 und iPadOS 15.4 Beta 1 offiziell der Öffentlichkeit vorgestellt, Version 19E5209h. In den offiziellen Update-Hinweisen sind viele Änderungen aufgeführt, darunter auch die Hinzufügung neuer Funktionen. Unterstützung für Masken Face ID Apple hat „Mask Face ID“ in iOS 15.4 hinzugefügt. Das iPhone authentifiziert Benutzer, indem es die einzigartigen Merkmale der Augenpartie beim Tragen einer Maske identifiziert. Beachten Sie, dass Benutzer ein iPhone 12 oder höher verwenden müssen, um diese Funktion nutzen zu können. Hinzufügen von 112 neuen Emoji-Ausdrücken iOS 15.4 Beta 1 unterstützt offiziell Emoji 14. Fügen Sie es hinzu

    Was sind die Gemeinsamkeiten und Unterschiede zwischen __str__ und __repr__ in Python? Was sind die Gemeinsamkeiten und Unterschiede zwischen __str__ und __repr__ in Python? Apr 29, 2023 pm 07:58 PM

    Was sind die Gemeinsamkeiten und Unterschiede zwischen __str__ und __repr__? Wir alle wissen, dass die in Python integrierte Funktion repr() Objekte in Form von Zeichenfolgen ausdrücken kann, um unsere Identifizierung zu erleichtern. Dies ist die „String-Darstellung“. repr() erhält die String-Darstellung eines Objekts über die spezielle Methode __repr__. Wenn __repr__ nicht implementiert ist und wir eine Instanz eines Vektors auf der Konsole ausgeben, kann die resultierende Zeichenfolge sein. >>>classExample:pass>>>print(str(Example()))>>>

    Was tun, wenn das MySQL-Emoji verstümmelt ist? Was tun, wenn das MySQL-Emoji verstümmelt ist? Feb 16, 2023 am 10:01 AM

    Lösung für das verstümmelte MySQL-Emoji: 1. Überprüfen Sie die MySQL-Tabellenkodierung mit dem Befehl „show create table test ENGINE=InnoDB DEFAULT CHARSET=utf8mb4“.

    See all articles