包含emoji表情符号的微信昵称入库失败解决方案作者:曾 彬
这里提供2个方法,处理微信emoji表情,方便入库和提取使用
你可以添加至项目的common中,便可以全局使用了
1、入库前,将emoji转换为可入口的字符串
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;}
2、出库时候,将字符串再转换为emoji表情,即可直接使用
function str2emoji($str) {
$strDecode = preg_replace_callback("/\[\[EMOJI:(.*?)\]\]/", function($matches){
return rawurldecode($matches[1]);
}, $str);
return $strDecode;
}