关闭

php处理emoji表情方法集合

标签: php函数
603人阅读 评论(0) 收藏 举报
分类:

1.将emoji表情转换成16进制字符串,取出来的时候转换成10进制字符串

function hexToStr($hex)//十六进制转字符串 
{ 
    $string="";
    for($i=0;$i<strlen($hex)-1;$i+=2) 
        $string.=chr(hexdec($hex[$i].$hex[$i+1]));
    return $string;
 }

2.数据库字段编码设置成utf8mb4,排序规则设置为utf8mb4_general_ci
连接数据库之后 记得加上set names utf8mb4命令

3.直接过滤掉emoji表情

/** 
* 过滤emoji表情
*@param type $str 
* @return type 
*/ 
function replace_emoji($str){ 
    $tmpStr = json_encode($str); //暴露出unicode 
    $tmpStr = preg_replace("#(\ue[0-9a-f]{3})#ie","",$tmpStr); //将emoji的unicode留下,其他不动 
    $new_str = json_decode($tmpStr); 
    return $new_str; 
}

4.加上标识符,取出来的时候转换一下

function emoji2str($str){ 
    $strEncode = '';
    $length = mb_strlen($str,'utf-8'); 
    for ($i=0; $i < $length; $i++) { 
        $_tmpStr = mb_substr($str,$i,1,'utf-8'); 
        if(strlen($_tmpStr) >= 4){ 
            $strEncode .= '[[EMOJI:'.rawurlencode($_tmpStr).']]'; 
        }else{
            $strEncode .= $_tmpStr; 
        } 
    } 
    return $strEncode; 
} 

function str2emoji($str){ 
    $strDecode = preg_replace_callback("/[[EMOJI:(.*?)]]/", function($matches){ 
        return rawurldecode($matches[1]); 
    }, $str); 
    return $strDecode; 
}
0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:11483次
    • 积分:223
    • 等级:
    • 排名:千里之外
    • 原创:9篇
    • 转载:10篇
    • 译文:0篇
    • 评论:2条
    文章分类
    最新评论