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

ホームページ バックエンド開発 PHPチュートリアル PHP ベースの絵文字処理メソッドを拡張するクラス ライブラリの紹介

PHP ベースの絵文字処理メソッドを拡張するクラス ライブラリの紹介

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

Carmela の紹介Carmela は、PHP、PHP 拡張機(jī)能、JAVA、C++、および一般的な絵文字タグのサポートなどのその他の言語に基づいて 4 セクションの UTF-8 を処理するための一連のソリューションを提供します背景: UTF-8 形式 絵文字表現(xiàn)を含む文字列はデータベースに直接挿入されます。データベースが調(diào)整されていない場合、この問題はデータベースとテーブルの文字セットを utf8mb4_general_ci に変更することで回避できます。しかし、多くの大規(guī)模なシステムやアーキテクチャでは、データベースの文字セットを変更すると、PC 側(cè)の表示や新舊データ間の互換性の問題など、多くの問題が発生する可能性があります。この種の問題には、データベースに入る前に置換し、データベースから出た後にクライアントのタイプに応じて逆置換するという別の解決策もあります。 CarmelaCarmela は、PHP 拡張機(jī)能に基づいて 4 セクション UTF-8 を処理するためのソリューションを提供します。これにより、特定の UTF-8 文字 % など、UTF-8 の 3 バイトを超える UTF-8 文字を UBB モードに置き換えることができます。 f0%9f%91%a4 (表示の便宜上、絵文字タグのエンコード モードが表示されています)、[u]1f464[/u] の置換後、およびデータベースから読み取ったときの様子が異なります。リクエストクライアント (iOS、Andriod、PC) は逆置換を行います。カルメラという名前は、「異なるカルメラ」に由來しています?!府悿胜毳毳幞椤攻伐戛`ズの物語は、雌鶏のカルメラとその子供たち、カルメリドとカルメンの冒険物語です。他の人が思いつかないようなことに挑戦すること。 Installation11。 ubb モードへの移行、[u]1f464[/u] の置換後の様子。 例: git clone https://github.com/ugg/Carmela /phpize ./configure --with-php-c/php-config-path make make install 出力結(jié)果: [carmela] extension=carmela.so carmela_ubb2str: PC プラットフォームの転送の場合は、encode.class.php の carmela_ubb2str メソッドを參照できます。
  • 例:

    $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";

    出力結(jié)果:

    str:This is test xxxx(CSDN Emoji不能展示用XXXX代替) by ugg ubb:This is test [u]1f61c[/u] [u]1f619[/u] by ugg
  • carmela_substr: 絵文字を含む文字列から指定された長さの文字を切り出します。 carmela_sububbb: ubb タグを含む文字列から指定された長さの文字をインターセプトします。 carmela_delstr: 文字列內(nèi)の絵文字を削除します。非厳密モード。3 バイトの絵文字は削除できません。主に一部で使用されます。 carmela_delubb: ubb タグを含む文字列內(nèi)の ubb タグを削除します。 パフォーマンス使用PHP分別實(shí)現(xiàn)了兩種方法,分別使用PHP的str_replace方法和PHP查找四字節(jié)emoji,進(jìn)行替換的方法,以及PHP擴(kuò)展方式,使用相同數(shù)據(jù)分別進(jìn)行測試,測試效果如下。=========================== 方案1:PHP str_replace方式 ========================= =========== EMOJI TO STRING ========== TIME:781.94ms,處理行數(shù): 100,處理字?jǐn)?shù):10100,處理字節(jié)數(shù):31028 平均每行處理時(shí)間:7.819ms =========== STRING TO EMOJI ========== TIME:118.566ms,處理行數(shù): 100,處理字?jǐn)?shù):18710,處理字節(jié)數(shù):37793 平均每行處理時(shí)間:1.186ms =========================== 方案2:PHP字符查找方式 ========================= =========== EMOJI TO STRING ========== TIME:51.526ms,處理行數(shù): 100,處理字?jǐn)?shù):10100,處理字節(jié)數(shù):31028 平均每行處理時(shí)間:0.515ms =========== STRING TO EMOJI ========== TIME:27.959ms,處理行數(shù): 100,處理字?jǐn)?shù):23092,處理字節(jié)數(shù):41236 平均每行處理時(shí)間:0.28ms =========================== 方案3:PHP擴(kuò)展方式 ========================= =========== EMOJI TO STRING ========== TIME:0.721ms,處理行數(shù): 100,處理字?jǐn)?shù):10100,處理字節(jié)數(shù):31028 平均每行處理時(shí)間:0.007ms =========== STRING TO EMOJI ========== TIME:0.956ms,處理行數(shù): 100,處理字?jǐn)?shù):20308,處理字節(jié)數(shù):38452 平均每行處理時(shí)間:0.01ms 從以上測試效果上來看,str_replace方式,性能非常的差。使用PHP直接編寫替換函數(shù)方式,性能提升10倍多,而采用擴(kuò)展方式后,性能提升明顯,在把emoji從字符形式轉(zhuǎn)換為ubb方式時(shí),性能提升1000倍。以上測試數(shù)據(jù)通過create_file.php可以動態(tài)生成。本測試用例,生成100行數(shù)據(jù),每行100個(gè)字符,100字符中可以包含3-10個(gè)emoji字符,進(jìn)行測試的,直接運(yùn)行benchmark.php 查看運(yùn)行性能。原理處理四字節(jié)的emoji原理非常簡單,通過字符對比找到emoji字符進(jìn)行替換。難點(diǎn)就是在基本原理上如何提升性能,如何快速查找,替換。PHP擴(kuò)展方式,為大家提供了一種思路,可以參考這種思路實(shí)現(xiàn)java,C#,js等等版本的。PC如何支持EMoji表情展示?在項(xiàng)目目錄中的emoji目錄下找到images目錄,從web根目錄創(chuàng)建emoji文件夾,把images文件夾整個(gè)拷貝到emoji文件下,調(diào)用encode.class.php里面的carmela_ubb2str方法,Util_Encode::carmela_ubb2str($str, "PC"); 即可在PC上展示Emoji表情,目前收集到的845個(gè)emoji表情,一些新的表情符號并沒有納入其中,當(dāng)然,目前這種方法并沒有寫入PHP擴(kuò)展中,性能相對來說并不高。Contact?ugg.xchj@gmail.com?for all questions

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

    このウェブサイトの聲明
    この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

    ホットAIツール

    Undress AI Tool

    Undress AI Tool

    脫衣畫像を無料で

    Undresser.AI Undress

    Undresser.AI Undress

    リアルなヌード寫真を作成する AI 搭載アプリ

    AI Clothes Remover

    AI Clothes Remover

    寫真から衣服を削除するオンライン AI ツール。

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    Video Face Swap

    Video Face Swap

    完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

    ホットツール

    メモ帳++7.3.1

    メモ帳++7.3.1

    使いやすく無料のコードエディター

    SublimeText3 中國語版

    SublimeText3 中國語版

    中國語版、とても使いやすい

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    SublimeText3 Mac版

    SublimeText3 Mac版

    神レベルのコード編集ソフト(SublimeText3)

    Win10 Education Edition で絵文字をオフにする方法 Win10 Education Edition で絵文字をオフにする方法 Feb 24, 2024 pm 01:55 PM

    絵文字は、Win10 Education Edition に追加された最新の入力メソッド機(jī)能です。かわいい絵文字がたくさんあるので、チャットが退屈しません。ただし、一部のユーザーは、ショートカット キーを使用するときにこのインターフェイスをポップアップします。今日は、Win10 Education Edition で絵文字をオフにする方法を説明します。 。 導(dǎo)入。 Win10 Education Edition で emoji1 をオフにする方法. まず、以下のタスクバーの右側(cè)にある入力メソッドを右クリックする必要があります。 2. ポップアップ オプション ボックスで [設(shè)定] を選択して、言語設(shè)定インターフェイスに入ります。 3. インターフェイスで [キー] オプションを選択し、一番下までスクロールして [絵文字と記號パネルを開く] を見つけます。ここで絵文字表現(xiàn)をオフにすることができます。 4. 他の入力方法がインストールされている場合は、Windows の設(shè)定から「設(shè)定と言語」インターフェイスに入り、選択することができます。

    Huaweiの絵文字を入力する方法 Huaweiの絵文字を入力する方法 Sep 26, 2023 pm 01:31 PM

    Huawei 絵文字入力方法: 1. Huawei 攜帯電話には絵文字キーボードが付屬しています。テキストを入力するときにこのキーボードに切り替えて絵文字を入力できます。2. 絵文字を入力する必要がある場所で、入力ボックスを長押しして、「Enter」を選択します。 「入力方法の設(shè)定」では、システムに付屬する絵文字入力方法を見つけて選択できます。 3. サードパーティの絵文字キーボードをダウンロードして使用し、希望する絵文字を參照して選択できます。キーボードで使用します。

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

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

    Python組み込み型strソースコード解析 Python組み込み型strソースコード解析 May 09, 2023 pm 02:16 PM

    1 Unicode コンピュータ ストレージの基本単位は 8 ビットで構(gòu)成されるバイトです。英語は 26 文字といくつかの記號のみで構(gòu)成されているため、英語の文字はバイト単位で直接格納できます。ただし、他の言語 (中國語、日本語、韓國語など) では、文字?jǐn)?shù)が多いため、エンコードに複數(shù)のバイトを使用する必要があります。コンピューター技術(shù)の普及に伴い、非ラテン文字エンコード技術(shù)は発展を続けていますが、依然として 2 つの大きな制限があります。 多言語サポートがないこと。 ある言語のエンコード スキームを別の言語で使用することはできません。また、統(tǒng)一された標(biāo)準(zhǔn)もありません。たとえば、中國語には GBK、GB2312、GB18030 など、多くのエンコード標(biāo)準(zhǔn)があります。エンコード方式が統(tǒng)一されていないため、開発者は異なるエンコード間で相互に変換する必要があり、必然的に多くのエラーが発生します。

    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) を正式に公開しました。公式アップデートノートには、新機(jī)能の追加を含む多くの変更點(diǎn)が記載されています。マスク Face ID のサポート Apple は、iOS 15.4 で、iPhone がマスクを著用しているときに目の周りの領(lǐng)域の固有の特徴を識別してユーザーを認(rèn)証する「Mask Face ID」を追加しました。この機(jī)能を使用するには、iPhone 12 以降を使用する必要があることに注意してください。 112 個(gè)の新しい絵文字表現(xiàn)を追加 iOS 15.4 ベータ 1 は絵文字 14 を正式にサポートします。それに追加する

    Python の __str__ と __repr__ の類似點(diǎn)と相違點(diǎn)は何ですか? Python の __str__ と __repr__ の類似點(diǎn)と相違點(diǎn)は何ですか? Apr 29, 2023 pm 07:58 PM

    __str__ と __repr__ の類似點(diǎn)と相違點(diǎn)は何ですか? 文字列の表現(xiàn)については誰もが知っています。Python の組み込み関數(shù) repr() は、識別を容易にするためにオブジェクトを文字列の形式で表現(xiàn)できます。これが「文字列表現(xiàn)」です。 repr() は、特別なメソッド __repr__ を通じてオブジェクトの文字列表現(xiàn)を取得します。 __repr__ が実裝されていない場合、ベクトルのインスタンスをコンソールに出力すると、結(jié)果の文字列が次のようになります。 >>>classExample:pass>>>print(str(Example()))>>>

    mysqlの絵文字が文字化けした場合の対処法 mysqlの絵文字が文字化けした場合の対処法 Feb 16, 2023 am 10:01 AM

    文字化けした mysql 絵文字の解決策: 1. 「show create table test ENGINE=InnoDB DEFAULT CHARSET=utf8mb4」コマンドを使用して、mysql テーブルのエンコードを確認(rèn)します。 2. 「set names utf8mb4;」を使用して、読み取りエンコードを「utf8mb4」に設(shè)定します。

    See all articles