php絵文字表現処理

Jul 29, 2016 am 09:02 AM
emoji str

背景

移动设备经常会发生用户发送的内容中包含emoji表情,未经处理,在显示时就是乱码。

解决方案

1.数据库支持:将Mysql的编码从utf8转换成utf8mb4。 

2.匹配出内容中的emoji表情做过滤或替换

/**
 * 表情转换  更新到ios9.2涵盖编码范围
 * @param $str
 * @return mixed
 */
public static function emoji_to_html($str) {
    $regex = '/([0-9|#][\x{20E3}])|[\x{00ae}|\x{00a9}|\x{203C}|\x{2047}|\x{2048}|\x{2049}|\x{3030}|\x{303D}|\x{2139}|\x{2122}|\x{3297}|\x{3299}][\x{FE00}-\x{FEFF}]?|[\x{2190}-\x{21FF}][\x{FE00}-\x{FEFF}]?|[\x{2300}-\x{23FF}][\x{FE00}-\x{FEFF}]?|[\x{2460}-\x{24FF}][\x{FE00}-\x{FEFF}]?|[\x{25A0}-\x{25FF}][\x{FE00}-\x{FEFF}]?|[\x{2600}-\x{27BF}][\x{FE00}-\x{FEFF}]?|[\x{2900}-\x{297F}][\x{FE00}-\x{FEFF}]?|[\x{2B00}-\x{2BF0}][\x{FE00}-\x{FEFF}]?|[\x{1F000}-\x{1F6FF}][\x{FE00}-\x{FEFF}]?|[\x{1F900}-\x{1F9FF}][\x{FE00}-\x{FEFF}]?/u';
    $str = preg_replace_callback($regex,function($matches){
        $str = json_encode($matches[0]);
        $str = '<em data-emoji=&#39; . str_replace(&#39;\u&#39;, &#39;em:&#39;, $str) . &#39;></em>';
        return $str;
    },$str);
    return $str;
}
从数据库取出后再转回
$string = preg_replace_callback('/<em data-emoji=\"(.*?)\"><\/em>/is', "self::preg_emoji", $string);
/**
 * 输出emoji表情
 * @param $matches
 * @return mixed
 */
public static function preg_emoji($matches)
{
    $str = $matches[0];
    $str = str_replace('em:', '\u', $str);
    return $str;
}
ログイン後にコピー
3.直接过滤掉
/**
 * 过滤表情
 * @param $str
 * @return mixed
 */
public static function filter_emoji($str) {
    $regex = '/(\\\u[ed][0-9a-f]{3})/i';
    $str = json_encode($str);
    $str = preg_replace($regex, '', $str);
    return json_decode($str);
}
ログイン後にコピー

以上就介绍了php emoji表情处理,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Apple が iOS 17.4 Beta 1 をリリースし、フェニックスやライムなどを含む 118 個の新しい絵文字を導入しました。 Apple が iOS 17.4 Beta 1 をリリースし、フェニックスやライムなどを含む 118 個の新しい絵文字を導入しました。 Jan 26, 2024 am 08:24 AM

海外テクノロジーメディアemojipediaによる1月26日の報道によると、本日リリースされたiOS 17.4ベータ1アップデートでは、サイドローディングやEU27カ国でのテスト用サードパーティアプリストアなどの大幅な改善に加え、Appleはいくつかの機能を追加したとのこと。新しい絵文字。 iOS 17.4 ベータ 1 アップデートでは、2023 年 9 月に Unicode によって提案された絵文字 15.1 アップデートから、フェニックス、ライム、首を上下に振る笑顔、道を示す一連のキャラクターの絵文字が追加されます。完全な絵文字は次のように添付されています。 このアップデートでは、6 つの新しい絵文字と 4 つの性別中立の家族絵文字を含む、合計 118 の絵文字が追加されます。さらに既存キャラクター表情は6種類

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

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

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

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

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 ID のサポート Apple は、iOS 15.4 で、iPhone がマスクを着用しているときに目の周りの領域の固有の特徴を識別してユーザーを認証する「Mask Face ID」を追加しました。この機能を使用するには、iPhone 12 以降を使用する必要があることに注意してください。 112 個の新しい絵文字表現を追加 iOS 15.4 ベータ 1 は絵文字 14 を正式にサポートします。それに追加する

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

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

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

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

Python の __str__ と __repr__ の類似点と相違点は何ですか? Python の __str__ と __repr__ の類似点と相違点は何ですか? Apr 29, 2023 pm 07:58 PM

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

iOS 15.4 ベータ 5 には、Face ID、AirTag アンチトラッキングなどの新機能が導入されています。 iOS 15.4 ベータ 5 には、Face ID、AirTag アンチトラッキングなどの新機能が導入されています。 Apr 21, 2023 am 08:10 AM

Apple は、iOS15.4Beta5 と iPadOS15.4Beta5 を開発者にプッシュしています。これが最後のベータ版になる可能性があると推定されています。来週には RC 段階に入り、正式版は 3 月中旬までにリリースされる予定です。 AirTag アンチトラッキング機能 iOS 15.4 の新バージョンでは、Apple が以前に発表した AirTag および FindMy トラッキング防止機能がベータ 4 で導入され、警告メッセージが追加され、ペアリング設計時の「不明なアクセサリが検出されました」警告が調整されました。 Siri の新しい音声オプション アメリカのユーザー向けに、iOS15.4Beta4 では 5 番目の Siri 音声 (ファイル名: Quinn) が追加されました。

See all articles