• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php emoji表情处理

php 搞代码 3年前 (2022-01-23) 16次浏览 已收录 0个评论

背景

移动设备经常会发生用户发送的内容中包含emoji表情,未经处理,在显示时就是乱码。

解决方案

1.数据库支持:将Mysql的编码从utf8转换成utf8mb4。

2.匹配出内容中的emoji表情做过滤或替换

/** * 表情转换  更新到ios9.2涵盖编码范围 * @param $str * @return mixed */public static function emoji_to_html($str) {    $regex = '/([0-9|#][\x{20E3}])|[\x{00ae}|\x{00a9}|\x{203C}|\x{2047}|\x{2048}|\x{2049}|\x{3030}|\x{303D}|\x{2139}|\x{2122}|\x{3297}|\x{3299}][\x{FE00}-\x{FEFF}]?|[\x{2190}-\x{21FF}][\x{FE00}-\x{FEFF}]?|[\x{2300}-\x{23FF}][\x{FE00}-\x{FEFF}]?|[\x{2460}-\x{24FF}][\x{FE00}-\x{FEFF}]?|[\x{25A0}-\x{25FF}][\x{FE00}-\x{FEFF}]?|[\x{2600}-\x{27BF}][\x{FE00}-\x{FEFF}]?|[\x{2900}-\x{297F}][\x{FE00}-\x{FEFF}]?|[\x{2B00}-\x{2BF0}][\x{FE00}-\x{FEFF}]?|[\x{1F000}-\x{1F6FF}][\x{FE00}-\x{FEFF}]?|[\x{1F900}-\x{19来源gaodai#ma#com搞@代~码$网搞gaodaima代码F9FF}][\x{FE00}-\x{FEFF}]?/u';    $str = preg_replace_callback($regex,function($matches){        $str = json_encode($matches[0]);        $str = '';        return $str;    },$str);    return $str;}从数据库取出后再转回$string = preg_replace_callback('/<\/em>/is', "self::preg_emoji", $string);/** * 输出emoji表情 * @param $matches * @return mixed */public static function preg_emoji($matches){    $str = $matches[0];    $str = str_replace('em:', '\u', $str);    return $str;}

3.直接过滤掉

/** * 过滤表情 * @param $str * @return mixed */public static function filter_emoji($str) {    $regex = '/(\\\u[ed][0-9a-f]{3})/i';    $str = json_encode($str);    $str = preg_replace($regex, '', $str);    return json_decode($str);}

以上就介绍了php emoji表情处理,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php emoji表情处理

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址