国产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標簽支持背景:UTF-8格式含有Emoji表情字符串直接插入數(shù)據(jù)庫,如果數(shù)據(jù)庫未做調整會提示報錯,通過更改數(shù)據(jù)庫和表的字符集為utf8mb4_general_ci,可以避免這種問題。但是,在很多大型系統(tǒng)和架構中,修改數(shù)據(jù)庫的字符集可能會引發(fā)很多的問題,比如PC端展示,新老數(shù)據(jù)兼容問題。針對這類問題,還有另外一種解決方案,入庫前替換,出庫后根據(jù)客戶端類型做反向替換。CarmelaCarmela提供基于PHP擴展一套處理4四節(jié)UTF-8解決方案,可以把UTF-8中大于3個字節(jié)的UTF-8字符替換成ubb模式,比如某UTF-8字符%f0%9f%91%a4(為了展示方便,展示emoji標簽的encode模式),替換后的樣子[u]1f464[/u],同時從數(shù)據(jù)庫讀出時,根據(jù)不同的請求客戶端(iOS,Andriod,PC)做反向替換。 Carmela的名字來源《不一樣的卡梅拉》,《不一樣的卡梅拉》系列故事講的是母雞卡梅拉和她的兒女們卡梅利多和卡門的歷險故事,卡梅拉家族里的每個人都是那樣的與眾不同,敢于幻想,更敢于去嘗試別人不敢想的事情。安裝1.編譯打包git clone https://github.com/ugg/Carmela /phpize ./configure --with-php-c/php-config-path make make install
  • 修改配置文件

    vim /php.ini

  • 添加以下內容[carmela] extension=carmela.so 方法:carmela_str2ubb: 包含emoji標簽的字符串轉換成ubb模式,替換后的樣子[u]1f464[/u]。一個例子:$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"; 輸出結果:str:This is test xxxx(CSDN Emoji不能展示用XXXX代替) by ugg ubb:This is test [u]1f61c[/u] [u]1f619[/u] by ugg carmela_ubb2str:包含ubb標簽轉換為utf-8字符串格式,針對PC平臺的轉移,可以參考encode.class.php中的carmela_ubb2str方法。一個例子:$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"; 輸出結果:ubb:This is test [u]1f61c[/u] [u]1f619[/u] by ugg str:This is test(CSDN Emoji不能展示用XXXX代替) by uggcarmela_substr:截取包含emoji字符的字符串指定長度字符。carmela_sububb:截取包含ubb標簽的字符串的指定長度字符。carmela_delstr:刪除字符串中的emoji字符,非嚴格模式,3字節(jié)的emoji字符無法刪除,主要用在一些。carmela_delubb:刪除包含ubb標簽字符串中的ubb標簽。性能使用PHP分別實現(xiàn)了兩種方法,分別使用PHP的str_replace方法和PHP查找四字節(jié)emoji,進行替換的方法,以及PHP擴展方式,使用相同數(shù)據(jù)分別進行測試,測試效果如下。=========================== 方案1:PHP str_replace方式 ========================= =========== EMOJI TO STRING ========== TIME:781.94ms,處理行數(shù): 100,處理字數(shù):10100,處理字節(jié)數(shù):31028 平均每行處理時間:7.819ms =========== STRING TO EMOJI ========== TIME:118.566ms,處理行數(shù): 100,處理字數(shù):18710,處理字節(jié)數(shù):37793 平均每行處理時間:1.186ms =========================== 方案2:PHP字符查找方式 ========================= =========== EMOJI TO STRING ========== TIME:51.526ms,處理行數(shù): 100,處理字數(shù):10100,處理字節(jié)數(shù):31028 平均每行處理時間:0.515ms =========== STRING TO EMOJI ========== TIME:27.959ms,處理行數(shù): 100,處理字數(shù):23092,處理字節(jié)數(shù):41236 平均每行處理時間:0.28ms =========================== 方案3:PHP擴展方式 ========================= =========== EMOJI TO STRING ========== TIME:0.721ms,處理行數(shù): 100,處理字數(shù):10100,處理字節(jié)數(shù):31028 平均每行處理時間:0.007ms =========== STRING TO EMOJI ========== TIME:0.956ms,處理行數(shù): 100,處理字數(shù):20308,處理字節(jié)數(shù):38452 平均每行處理時間:0.01ms 從以上測試效果上來看,str_replace方式,性能非常的差。使用PHP直接編寫替換函數(shù)方式,性能提升10倍多,而采用擴展方式后,性能提升明顯,在把emoji從字符形式轉換為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文件下,調用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教程有興趣的朋友有所幫助。

    本站聲明
    本文內容由網(wǎng)友自發(fā)貢獻,版權歸原作者所有,本站不承擔相應法律責任。如您發(fā)現(xiàn)有涉嫌抄襲侵權的內容,請聯(lián)系admin@php.cn

    熱AI工具

    Undress AI Tool

    Undress AI Tool

    免費脫衣服圖片

    Undresser.AI Undress

    Undresser.AI Undress

    人工智能驅動的應用程序,用于創(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個歐盟國家測試開放側載、第三方應用商店等重大改進之外,還新增了多個Emoji表情符號。iOS17.4Beta1更新添加了包括鳳凰、青檸、上下?lián)u頭的笑臉,一系列指明方向的人物表情符號,來自Unicode于2023年9月提出的Emoji15.1更新。附上完整Emoji如下:本次更新共計新增118個Emoji,包括6個全新Emoji,4個無性別區(qū)分的家庭Emoji。此外還有6個現(xiàn)有人物表情

    Win10教育版怎么關閉emoji Win10教育版怎么關閉emoji Feb 24, 2024 pm 01:55 PM

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

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

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

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

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

    Python內建類型str源碼分析 Python內建類型str源碼分析 May 09, 2023 pm 02:16 PM

    1Unicode計算機存儲的基本單位是字節(jié),由8個比特位組成。由于英文只由26個字母加若干符號組成,因此英文字符可以直接用字節(jié)來保存。但是其他語言(例如中日韓等),由于字符眾多,不得不使用多個字節(jié)來進行編碼。隨著計算機技術的傳播,非拉丁文字符編碼技術不斷發(fā)展,但是仍然存在兩個比較大的局限性:不支持多語言:一種語言的編碼方案不能用于另外一種語言沒有統(tǒng)一標準:例如中文就有GBK、GB2312、GB18030等多種編碼標準由于編碼方式不統(tǒng)一,開發(fā)人員就需要在不同編碼之間來回轉換,不可避免地會出現(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ū)域的獨特特征來進行認證。留意,用戶必須使用iPhone 12 或以上的型號iPhone 才可使用這項功能。加入112 個新Emoji 表情圖示iOS 15.4 Beta 1 正式支持Emoji 14。當中加

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

    __str__和__repr__有什么異同?字符串的表示形式我們都知道,Python的內置函數(shù)repr()能夠把對象用字符串的形式表達出來,方便我們辨認。這就是“字符串表示形式”。repr()就是通過__repr__這個特殊方法來得到一個對象的字符串表示形式的。如果沒有實現(xiàn)__repr__,當我們在控制臺里打印一個向量的實例時,得到的字符串可能會是。>>>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;”設置讀取編碼為“utf8mb4”即可。

    See all articles