美文网首页
PHP处理emoji表情

PHP处理emoji表情

作者: 船长One | 来源:发表于2018-12-13 13:38 被阅读8次

最近项目中用户反映发表文章文字保存不全,经过检查发现是emoji表情造成,在使用MySQL直接存储的时候 没有存进去,查找了发现这个方法,特意记录一下 (直接将emoji表情过滤掉 ; 也有时候需要保留emoji表情 , 那么就只能转义保存 , 取出来的时候 , 再转回来 , 类似于编码和解码!)

1.过滤emoji表情

/** 
 * 过滤特殊字符
 * $str
 **/ 
function filter($str){      
    if($str){ 
        $name = $str; 
        $name = preg_replace('/\xEE[\x80-\xBF][\x80-\xBF]|\xEF[\x81-\x83][\x80-\xBF]/', '', $name); 
        $name = preg_replace('/xE0[x80-x9F][x80-xBF]‘.‘|xED[xA0-xBF][x80-xBF]/S','?', $name); 
        $return = @json_decode(preg_replace("#(\\\ud[0-9a-f]{3})#ie","",json_encode($name))); 
    }else{ 
        $return = ''; 
    }     
    return $return; 
}

2.编码解码

function userTextEncode($str){
    if(!is_string($str)) return $str;
    if(!$str || $str=='undefined') return '';
 
    $text = json_encode($str); //暴露出unicode
    $text = preg_replace_callback("/(\\\u[2def][0-9a-f]{3})/i",function($str){
        return addslashes($str[0]);
    },$text); //将emoji的unicode留下,其他不动,这里的正则比原答案增加了d,因为我发现我很多emoji实际上是\ud开头的,反而暂时没发现有\ue开头。
    return json_decode($text);
}
 
function userTextDecode($str){
    $text = json_encode($str); //暴露出unicode
    $text = preg_replace_callback('/\\\\\\\\/i',function($str){
        return '\\';
    },$text); //将两条斜杠变成一条,其他不动
    return json_decode($text);
}

相关文章

  • PHP处理emoji表情

    最近项目中用户反映发表文章文字保存不全,经过检查发现是emoji表情造成,在使用MySQL直接存储的时候 没有存进...

  • PHP中处理emoji表情

    今天遇到评论中加入emoji表情导致整个字符存到数据库中为空的情况,出现这种情况是因为mysql数据库表用的utf...

  • emoji表情处理

    iOS不倒,博客不停好久没有更新简书了,因为新公司,真的很忙!前几天一直忙emoji,正好阳光明媚就记录一下 em...

  • PHP处理字符中的emoji表情

    [toc] utf-8 编码的 emoji 表情或者某些特殊字符占用 4 个字节。utf-8 编码的常用中文字符占...

  • emoji表情处理,emoji表情的编码解码

    emoji表情的编码解码 该方法实体编码后内容在页面是可以直接显示的,不需要解码,只有在js中才需要解码,同名的p...

  • Mysql Emoji表情处理

    1.转码存储 将内容转码存储 如:转成 Unicode 存储,取出来时在解码 2.过滤 Emoji PHP 3....

  • iOS—emoji表情处理

    在发送网络请求时,由于用户输入了emoji表情,服务端返回错误提示信息。为了解决服务器不能验证emoji编码的问题...

  • python 处理emoji表情

    爬到有表情的内容存mysql会报错,mongodb则没有事,解决办法 去除表情后存储。 pypi有现成的库emoj...

  • python处理emoji表情

    pypi有现成的库emoji来处理emoji字符串 https://pypi.org/project/emoji/...

  • iOS emoji 表情 处理

    数据库编码是GBK编码,苹果系统的编码格式是UTF8编码,所以在把emoji表情存到GBK编码的数据库的就会出现乱...

网友评论

      本文标题:PHP处理emoji表情

      本文链接:https://www.haomeiwen.com/subject/rigvhqtx.html