PHP——emjoin表情存入数据库

前言

还有一种解决的方法是更改数据库,这里就不写了,这里直接对emoji进行转码

代码

mb_strlen() | strlen() | rawurlencode() | rawurldecode() | pre_replace_callback()

//对emoji表情转义
function emoji_encode($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 .= '[[emjoin:'.rawurlencode($_tmpStr).']]';
        }else{
            $strEncode .= $_tmpStr;
        }
    }
    return $strEncode;
}
//对emoji表情反转义
function emoji_decode($str){
    $strDecode = preg_replace_callback('|\[\[emjoin:(.*?)\]\]|', function($matches){  
        return rawurldecode($matches[1]);
    }, $str);

    return $strDecode;
}

 mb_strlen

 

strlen

 

rawurlencode

 

rawurldecode

 

pre_replace_callback

 

posted @ 2019-03-26 15:30  。思索  阅读(801)  评论(0编辑  收藏  举报