php処理emoji表情方法集合
1299 ワード
1.emoji表情を16進文字列に変換し、取り出すときに10進文字列に変換する
2.データベースフィールド符号化はutf 8 mb 4、並べ替え規則はutf 8 mb 4_に設定general_ciデータベースに接続したらset names utf 8 mb 4コマンドを付けてください
3.emojiの表情を直接フィルタする
4.識別子を付けて取り出すときに変換する
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;
}