最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

3種方法輕松處理php開發(fā)中emoji表情的問題

 更新時間:2016年07月18日 14:27:37   投稿:daisy  
移動設(shè)備經(jīng)常會發(fā)生用戶發(fā)送的內(nèi)容中包含emoji表情,未經(jīng)處理,在顯示時就是亂碼。所以本文介紹在PHP微信開發(fā)中涉及到emoji表情的幾種處理方法。

背景

做微信開發(fā)的時候就會發(fā)現(xiàn),存儲微信昵稱必不可少。

可這萬惡的微信支持emoji表情做昵稱,這就有點蛋疼了

一般Mysql表設(shè)計時,都是用UTF8字符集的。把帶有emoji的昵稱字段往里面insert一下就沒了,整個字段變成了空字符串。這是怎么回事呢?

原來是因為Mysql的utf8字符集是3字節(jié)的,而emoji是4字節(jié),這樣整個昵稱就無法存儲了。這要怎么辦呢?我來介紹幾種方法

解決方案

1、使用utf8mb4字符集

如果你的mysql版本>=5.5.3,你大可直接將utf8直接升級為utf8mb4字符集
這種4字節(jié)的utf8編碼可完美兼容舊的3字節(jié)utf8字符集,并且可以直接存儲emoji表情,是最好的解決方案
至于字節(jié)增大帶來的性能損耗,我看過一些評測,幾乎是可以忽略不計的

2、使用base64編碼

如果你因為某些原因無法使用utf8mb4的話,你還可以使用base64來曲線救國
使用例如base64_encode之類的函數(shù)編碼過后的emoji可以直接存儲在utf8字節(jié)集的數(shù)據(jù)表中,取出時decode一下即可

3、干掉emoji表情

emoji表情是個麻煩的東西,即使你能存儲,也不一定能完美顯示。在iOS以外的平臺上,例如PC或者android。如果你需要顯示emoji,就得準(zhǔn)備一大堆emoji圖片并使用第三方前端類庫才行。即便如此,還是可能因為emoji圖片不夠全而出現(xiàn)無法顯示的情況在大多數(shù)業(yè)務(wù)場景下,emoji也不是非要不可的。我們可以適當(dāng)?shù)乜紤]干掉它,節(jié)約各種成本

經(jīng)過一番苦苦的google,終于找到靠譜能用的代碼:

// 過濾掉emoji表情
function filterEmoji($str)
{
 $str = preg_replace_callback(
   '/./u',
   function (array $match) {
    return strlen($match[0]) >= 4 ? '' : $match[0];
   },
   $str);

  return $str;
 }

以上就是為大家總結(jié)的PHP微信開發(fā)中涉及到emoji表情的幾種處理方法,基本思想就是遍歷字符串中的每個字符,如果該字符的長度為4個字節(jié),就將其刪除。希望大家喜歡!

相關(guān)文章

  • php無序樹實現(xiàn)方法

    php無序樹實現(xiàn)方法

    這篇文章主要介紹了php無序樹實現(xiàn)方法,實例分析了php無序樹的實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • PHP合并數(shù)組函數(shù)array_merge用法分析

    PHP合并數(shù)組函數(shù)array_merge用法分析

    這篇文章主要介紹了PHP合并數(shù)組函數(shù)array_merge用法,結(jié)合實例形式分析了php數(shù)組合并函數(shù)array_merge的具體功能、使用方法與相關(guān)注意事項,需要的朋友可以參考下
    2017-02-02
  • PHP whois查詢類定義與用法示例

    PHP whois查詢類定義與用法示例

    這篇文章主要介紹了PHP whois查詢類定義與用法,結(jié)合實例形式分析了php定義及使用whois查詢類進(jìn)行網(wǎng)站whois查詢的相關(guān)操作技巧,需要的朋友可以參考下
    2019-04-04
  • php+html5基于websocket實現(xiàn)聊天室的方法

    php+html5基于websocket實現(xiàn)聊天室的方法

    這篇文章主要介紹了php+html5基于websocket實現(xiàn)聊天室的方法,實例分析了php結(jié)合html5的websocket通訊的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • php minixml詳解

    php minixml詳解

    MiniXML來自 Sourceforge ,參見:http://sourceforge.net/projects/minixml/,也有自己的官方網(wǎng)站: http://minixml.psychogenic.com/index.html.
    2008-07-07
  • 淺談PHP命令執(zhí)行php文件需要注意的問題

    淺談PHP命令執(zhí)行php文件需要注意的問題

    下面小編就為大家?guī)硪黄獪\談PHP命令執(zhí)行php文件需要注意的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • PHP實現(xiàn)多級分類生成樹的方法示例

    PHP實現(xiàn)多級分類生成樹的方法示例

    這篇文章主要介紹了PHP實現(xiàn)多級分類生成樹的方法,涉及php+mysql數(shù)據(jù)庫操作及數(shù)組與字符串遍歷、替換、組合等相關(guān)操作技巧,需要的朋友可以參考下
    2017-02-02
  • PHP與以太坊交互詳解

    PHP與以太坊交互詳解

    在這篇文章中我們給大家分享了關(guān)于PHP與以太坊交互的相關(guān)知識點內(nèi)容,有興趣的朋友們閱讀下吧。
    2018-08-08
  • phpMyAdmin通過密碼漏洞留后門文件

    phpMyAdmin通過密碼漏洞留后門文件

    今天小編就為大家分享一篇關(guān)于phpMyAdmin通過密碼漏洞留后門文件,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-11-11
  • PHP+apc+ajax實現(xiàn)的ajax_upload上傳進(jìn)度條代碼

    PHP+apc+ajax實現(xiàn)的ajax_upload上傳進(jìn)度條代碼

    這篇文章主要介紹了PHP+apc+ajax實現(xiàn)的ajax_upload上傳進(jìn)度條代碼,詳細(xì)分析了apc模塊的安裝、設(shè)置及ajax調(diào)用實現(xiàn)上傳進(jìn)度條功能,需要的朋友可以參考下
    2016-01-01

最新評論

惠来县| 呼伦贝尔市| 班戈县| 岗巴县| 长沙县| 靖西县| 磴口县| 太和县| 章丘市| 海丰县| 长寿区| 延长县| 日喀则市| 黄浦区| 靖江市| 南宁市| 仙桃市| 南阳市| 台山市| 六枝特区| 承德县| 和林格尔县| 闸北区| 庆阳市| 丘北县| 洛隆县| 崇明县| 科尔| 遵义市| 桦川县| 沁源县| 裕民县| 霞浦县| 宁南县| 永嘉县| 高陵县| 体育| 彭泽县| 澄迈县| 饶阳县| 阿坝县|