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

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

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

背景

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

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

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

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

解決方案

1、使用utf8mb4字符集

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

2、使用base64編碼

如果你因?yàn)槟承┰驘o法使用utf8mb4的話,你還可以使用base64來曲線救國
使用例如base64_encode之類的函數(shù)編碼過后的emoji可以直接存儲(chǔ)在utf8字節(jié)集的數(shù)據(jù)表中,取出時(shí)decode一下即可

3、干掉emoji表情

emoji表情是個(gè)麻煩的東西,即使你能存儲(chǔ),也不一定能完美顯示。在iOS以外的平臺(tái)上,例如PC或者android。如果你需要顯示emoji,就得準(zhǔn)備一大堆emoji圖片并使用第三方前端類庫才行。即便如此,還是可能因?yàn)閑moji圖片不夠全而出現(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表情的幾種處理方法,基本思想就是遍歷字符串中的每個(gè)字符,如果該字符的長度為4個(gè)字節(jié),就將其刪除。希望大家喜歡!

相關(guān)文章

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

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

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

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

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

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

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

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

    這篇文章主要介紹了php+html5基于websocket實(shí)現(xiàn)聊天室的方法,實(shí)例分析了php結(jié)合html5的websocket通訊的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    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文件需要注意的問題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-12-12
  • PHP實(shí)現(xiàn)多級(jí)分類生成樹的方法示例

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

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

    PHP與以太坊交互詳解

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

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

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

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

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

最新評(píng)論

芮城县| 达孜县| 迁西县| 白山市| 通州市| 大新县| 云林县| 福泉市| 玉溪市| 桃江县| 夹江县| 永城市| 龙口市| 左权县| 广南县| 蓝山县| 自贡市| 永州市| 新河县| 攀枝花市| 佳木斯市| 华蓥市| 兴文县| 隆德县| 贺兰县| 梁山县| 眉山市| 齐河县| 信丰县| 习水县| 河间市| 塘沽区| 庄浪县| 太和县| 乐业县| 宜阳县| 黑河市| 隆昌县| 舟曲县| 宁都县| 荆门市|