php処理emoji表情方法集合

1299 ワード

1.emoji表情を16進文字列に変換し、取り出すときに10進文字列に変換する
function hexToStr($hex)//         
{ 
    $string="";
    for($i=0;$i

2.データベースフィールド符号化はutf 8 mb 4、並べ替え規則はutf 8 mb 4_に設定general_ciデータベースに接続したらset names utf 8 mb 4コマンドを付けてください
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; 
}