在与用户交互中,前端的长文本理论上是允许用户使用表情的,但是当前端将表情传到后台接口中的时候,由于部分数据的编码限制,是没有办法保存此类数据的。
我在此使用的方法是用正则转化文本中的表情符,然后从数据库中读取之后,在进行一次逆向正则即可。
【需要注意的是:表情符号转义成功后,亲测在微信中,浏览器中,还有手机端,会自动的匹配当前的表情符】
下面贴上代码
/**
* 设置长文本内容
*
* @param $content
* @return mixed
*/
public function setContent($content){
return preg_replace_callback('/[xf0-xf7].{3}/', function($r) { return '@E' . base64_encode($r[0]);}, $content);
}
/**
* 得到处理后的长文本内容
*
* @param $content
* @return mixed
*/
public function getContent($content){
return preg_replace_callback('/@E(.{6}==)/', function($r) {return base64_decode($r[1]);}, $content);
}