首頁 後端開發 php教程 php emoji表情處理

php emoji表情處理

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 Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

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

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
蘋果發表 iOS 17.4 Beta 1,推出 118 個新表情符號,包括鳳凰、青檸等 蘋果發表 iOS 17.4 Beta 1,推出 118 個新表情符號,包括鳳凰、青檸等 Jan 26, 2024 am 08:24 AM

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

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

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

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

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

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

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

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 會在使用者戴口罩時透過辨識眼睛周圍區域的獨特特徵來進行認證。留意,使用者必須使用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的內建函數repr()能夠把物件用字串的形式表達出來,方便我們辨認。這就是“字串表示形式”。 repr()就是透過__repr__這個特殊方法得到一個物件的字串表示形式的。如果沒有實作__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」即可。

iOS 15.4 Beta 5引進新功能:面罩Face ID、AirTag防追蹤等。 iOS 15.4 Beta 5引進新功能:面罩Face ID、AirTag防追蹤等。 Apr 21, 2023 am 08:10 AM

Apple向開發者推送iOS15.4Beta5及iPadOS15.4Beta5,估計這可能是最後Beta,下週很有可能會進入RC階段,而正式版會在3月中之前登場。 AirTag反追蹤功能新版iOS15.4引進早前Apple宣布的AirTag、FindMy反追蹤功能,現在已於Beta4中引進,分別在配對設計時加入警訊及調整「偵測出不明配件」的警告。 Siri新語音選擇對於美國用戶來說,iOS15.4Beta4加入了第五款Siri語音(檔名為Quinn),美國地

See all articles