国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 後端開發(fā) php教程 基於PHP擴充一種處理Emoji方法的類別庫介紹

基於PHP擴充一種處理Emoji方法的類別庫介紹

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

Carmela介紹Carmela提供基於PHP,PHP擴展,JAVA,C++等語言的一套處理4四節(jié)UTF-8解決方案,例如常見Emoji標(biāo)籤支援格式背景::含有Emoji表情字串直接插入資料庫,如果資料庫未做調(diào)整會提示報錯,透過更改資料庫和表格的字元集為utf8mb4_general_ci,可以避免這種問題。但是,在許多大型系統(tǒng)和架構(gòu)中,修改資料庫的字元集可能會引發(fā)很多的問題,例如PC端展示,新舊資料相容問題。針對這類問題,還有另一種解決方案,入庫前替換,出庫後依客戶端類型做反向替換。 CarmelaCarmela提供基於PHP擴展一套處理4四節(jié)UTF-8解決方案,可以把UTF-8中大於3個字節(jié)的UTF-8字符替換成ubb模式,例如某UTF-8字符% f0%9f%91%a4(為了展示方便,展示emoji標(biāo)籤的encode模式),替換後的樣子[u]1f464[/u],同時從資料庫讀出時,根據(jù)不同的請求客戶端(iOS,Andriod ,PC)做反向替換。 Carmela的名字來源《不一樣的卡梅拉》,《不一樣的卡梅拉》系列故事講的是母雞卡梅拉和她的兒女們卡梅利多和卡門的歷險故事,卡梅拉家族裡的每個人都是那樣的與眾不同,敢於幻想,更敢於嘗試別人不敢想的事。 安裝1.編譯打包git clone https://github.com/ugg/Carmela /phpize ./configure --with-php-c/php-config-path make make install
  • 修改設(shè)定檔

    vim /php.ini

  • ,被替換後的樣子[u]1f464[/u]。 一個例子:[carmela] extension=carmela.so 輸出結(jié)果:$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"; carmela_ubb2str:包含ubb標(biāo)籤轉(zhuǎn)換為utf-8字串格式,針對PC平臺的轉(zhuǎn)移,可以參考encode.class.php中的carmela_ubb2str方法。 一個例子:str:This is test xxxx(CSDN Emoji不能展示用XXXX代替) by ugg ubb:This is test [u]1f61c[/u] [u]1f619[/u] by ugg 輸出結(jié)果:$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"; carmela_substr:截取包含emoji字元的字串指定長度字元。 carmela_sububb:截取包含ubb標(biāo)籤的字串的指定長度字元。 carmela_delstr:刪除字串中的emoji字符,非嚴(yán)格模式,3位元組的emoji字符無法刪除,主要用在一些。 carmela_delubb:刪除包含ubb標(biāo)籤字串中的ubb標(biāo)籤。 性能使用PHP分別實現(xiàn)了兩種方法,分別使用PHP的str_replace方法和PHP查找四字節(jié)emoji,進行替換的方法,以及PHP擴展方式,使用相同數(shù)據(jù)分別進行測試,測試效果如下。=========================== 方案1:PHP str_replace方式 ========================= =========== EMOJI TO STRING ========== TIME:781.94ms,處理行數(shù): 100,處理字?jǐn)?shù):10100,處理字節(jié)數(shù):31028 平均每行處理時間:7.819ms =========== STRING TO EMOJI ========== TIME:118.566ms,處理行數(shù): 100,處理字?jǐn)?shù):18710,處理字節(jié)數(shù):37793 平均每行處理時間:1.186ms =========================== 方案2:PHP字符查找方式 ========================= =========== EMOJI TO STRING ========== TIME:51.526ms,處理行數(shù): 100,處理字?jǐn)?shù):10100,處理字節(jié)數(shù):31028 平均每行處理時間:0.515ms =========== STRING TO EMOJI ========== TIME:27.959ms,處理行數(shù): 100,處理字?jǐn)?shù):23092,處理字節(jié)數(shù):41236 平均每行處理時間:0.28ms =========================== 方案3:PHP擴展方式 ========================= =========== EMOJI TO STRING ========== TIME:0.721ms,處理行數(shù): 100,處理字?jǐn)?shù):10100,處理字節(jié)數(shù):31028 平均每行處理時間:0.007ms =========== STRING TO EMOJI ========== TIME:0.956ms,處理行數(shù): 100,處理字?jǐn)?shù):20308,處理字節(jié)數(shù):38452 平均每行處理時間:0.01ms 從以上測試效果上來看,str_replace方式,性能非常的差。使用PHP直接編寫替換函數(shù)方式,性能提升10倍多,而采用擴展方式后,性能提升明顯,在把emoji從字符形式轉(zhuǎn)換為ubb方式時,性能提升1000倍。以上測試數(shù)據(jù)通過create_file.php可以動態(tài)生成。本測試用例,生成100行數(shù)據(jù),每行100個字符,100字符中可以包含3-10個emoji字符,進行測試的,直接運行benchmark.php 查看運行性能。原理處理四字節(jié)的emoji原理非常簡單,通過字符對比找到emoji字符進行替換。難點就是在基本原理上如何提升性能,如何快速查找,替換。PHP擴展方式,為大家提供了一種思路,可以參考這種思路實現(xiàn)java,C#,js等等版本的。PC如何支持EMoji表情展示?在項目目錄中的emoji目錄下找到images目錄,從web根目錄創(chuàng)建emoji文件夾,把images文件夾整個拷貝到emoji文件下,調(diào)用encode.class.php里面的carmela_ubb2str方法,Util_Encode::carmela_ubb2str($str, "PC"); 即可在PC上展示Emoji表情,目前收集到的845個emoji表情,一些新的表情符號并沒有納入其中,當(dāng)然,目前這種方法并沒有寫入PHP擴展中,性能相對來說并不高。Contact?ugg.xchj@gmail.com?for all questions

    以上就介紹了基于PHP擴展一種處理Emoji方法的類庫介紹,包括了方面的內(nèi)容,希望對PHP教程有興趣的朋友有所幫助。

    本網(wǎng)站聲明
    本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

    熱AI工具

    Undress AI Tool

    Undress AI Tool

    免費脫衣圖片

    Undresser.AI Undress

    Undresser.AI Undress

    人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

    AI Clothes Remover

    AI Clothes Remover

    用於從照片中去除衣服的線上人工智慧工具。

    Clothoff.io

    Clothoff.io

    AI脫衣器

    Video Face Swap

    Video Face Swap

    使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

    熱工具

    記事本++7.3.1

    記事本++7.3.1

    好用且免費的程式碼編輯器

    SublimeText3漢化版

    SublimeText3漢化版

    中文版,非常好用

    禪工作室 13.0.1

    禪工作室 13.0.1

    強大的PHP整合開發(fā)環(huán)境

    Dreamweaver CS6

    Dreamweaver CS6

    視覺化網(wǎng)頁開發(fā)工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神級程式碼編輯軟體(SublimeText3)

    蘋果發(fā)表 iOS 17.4 Beta 1,推出 118 個新表情符號,包括鳳凰、青檸等 蘋果發(fā)表 iOS 17.4 Beta 1,推出 118 個新表情符號,包括鳳凰、青檸等 Jan 26, 2024 am 08:24 AM

    1月26日消息,根據(jù)國外科技媒體emojipedia報道,蘋果在今天發(fā)布的iOS17.4Beta1更新中,面向27個歐盟國家測試開放側(cè)載、第三方應(yīng)用商店等重大改進之外,還新增了多個Emoji表情符號。 iOS17.4Beta1更新增加了包括鳳凰、青檸、上下?lián)u頭的笑臉,一系列指明方向的人物表情符號,來自Unicode於2023年9月提出的Emoji15.1更新。附上完整Emoji如下:本次更新共新增118個Emoji,包括6個全新Emoji,4個無性別區(qū)分的家庭Emoji。另外還有6個現(xiàn)有人物表情

    Win10教育版怎麼關(guān)閉emoji Win10教育版怎麼關(guān)閉emoji Feb 24, 2024 pm 01:55 PM

    emoji表情作為Win10教育版最新添加的輸入法功能,很多可愛的表情讓聊天不在枯燥,但是有的用戶在使用快捷鍵的時候會彈出該界面,今天小編為大家?guī)鞼in10教育版關(guān)閉emoji方法介紹。 Win10教育版怎麼關(guān)閉emoji1、首先需要右鍵點選下方工作列右側(cè)的輸入法。 2、在彈出的選項框中選擇設(shè)置,進入語言設(shè)定介面。 3、選擇介面中的“按鍵”選項並捲動到最底端,能夠找到“打開表情及符號面板”,這裡可以關(guān)閉emoji表情。 4.如果還安裝了其他輸入法的話,可以從Windows設(shè)定進入「設(shè)定和語言」介面,隨後選

    華為emoji怎麼輸入 華為emoji怎麼輸入 Sep 26, 2023 pm 01:31 PM

    華為emoji輸入方法:1??、華為手機自帶了一個emoji表情鍵盤,可以在輸入文字的時候切換到該鍵盤來輸入emoji表情;2、在需要輸入emoji的地方,長按輸入框,然後選擇「輸入法設(shè)定”,在輸入法設(shè)定中,可以找到並選擇系統(tǒng)自帶的emoji輸入法;3、可以下載並使用第三方的emoji表情鍵盤,然後,可以在鍵盤上瀏覽並選擇想要使用的emoji表情。

    php提交表單通過后,彈出的對話框怎樣在當(dāng)前頁彈出,該如何解決 php提交表單通過后,彈出的對話框怎樣在當(dāng)前頁彈出,該如何解決 Jun 13, 2016 am 10:23 AM

    php提交表單通過后,彈出的對話框怎樣在當(dāng)前頁彈出php提交表單通過后,彈出的對話框怎樣在當(dāng)前頁彈出而不是在空白頁彈出?想實現(xiàn)這樣的效果:而不是空白頁彈出:------解決方案--------------------如果你的驗證用PHP在后端,那么就用Ajax;僅供參考:HTML code

    Python內(nèi)建類型str原始碼分析 Python內(nèi)建類型str原始碼分析 May 09, 2023 pm 02:16 PM

    1Unicode電腦儲存的基本單位是位元組,由8個位元組組成。由於英文只由26個字母加若干符號組成,因此英文字元可以直接用位元組來保存。但是其他語言(例如中日韓等),由於字元眾多,不得不使用多個位元組來進行編碼。隨著電腦科技的傳播,非拉丁文字元編碼技術(shù)不斷發(fā)展,但是仍有兩個比較大的限制:不支援多語言:一種語言的編碼方案不能用於另一種語言沒有統(tǒng)一標(biāo)準(zhǔn):例如中文就有GBK、GB2312、GB18030等多種編碼標(biāo)準(zhǔn)由於編碼方式不統(tǒng)一,開發(fā)人員就需要在不同編碼之間來回轉(zhuǎn)換,不可避免地會出現(xiàn)很多錯

    iOS 15.4 及iPadOS 15.4 Beta 1 公測版登場戴口罩也可用Face ID iOS 15.4 及iPadOS 15.4 Beta 1 公測版登場戴口罩也可用Face ID Apr 13, 2023 pm 11:01 PM

    Apple 正式向大眾推出iOS 15.4 及iPadOS 15.4 Beta 1,版本為19E5209h。這次官方的更新說明中列出眾多改變,包括加入新功能。支援口罩 Face IDApple 在iOS 15.4 中加入了「口罩Face ID」,iPhone 會在使用者戴口罩時透過辨識眼睛周圍區(qū)域的獨特特徵來進行認(rèn)證。留意,使用者必須使用iPhone 12 或以上的型號iPhone 才可使用此功能。加入112 個新Emoji 表情圖示iOS 15.4 Beta 1 正式支援Emoji 14。當(dāng)中加

    Python中__str__和__repr__有什麼異同點 Python中__str__和__repr__有什麼異同點 Apr 29, 2023 pm 07:58 PM

    __str__和__repr__有什麼異同?字串的表示形式我們都知道,Python的內(nèi)建函數(shù)repr()能夠把物件用字串的形式表達出來,方便我們辨認(rèn)。這就是“字串表示形式”。 repr()就是透過__repr__這個特殊方法得到一個物件的字串表示形式的。如果沒有實作__repr__,當(dāng)我們在控制臺裡列印一個向量的實例時,得到的字串可能會是。 >>>classExample:pass>>>print(str(Example()))>>>

    mysql emoji 亂碼怎麼辦 mysql emoji 亂碼怎麼辦 Feb 16, 2023 am 10:01 AM

    mysql emoji亂碼的解決方法:1、透過「show create table test ENGINE=InnoDB DEFAULT CHARSET=utf8mb4」指令查看mysql表編碼;2、透過「set names utf8mb4;」設(shè)定讀取編碼為「utf8mb4」即可。

    See all articles