PHP如何处理提交过来的表情
2017-12-12 本文已影响10人
炜哲1120
很多表情在用php获取之后,属于无法识别的内容,在存入mysql的时候,会导致从表情位置开始,后面的内容都会丢失。
比如用户输入: 开始内容 [表情] 结束内容
用php获取,并存入mysql时,只能保存: 开始内容[
有什么办法能够把这些无法识别的表情删除,而不影响后面的内容呢?
入库前
$text = preg_replace_callback('/[\xf0-\xf7].{3}/', function($r) { return '@E' . base64_encode($r[0]);}, $text);
出库后
$text = preg_replace_callback('/@E(.{6}==)/', function($r) {return base64_decode($r[1]);}, $text);
以上代码来源自网上,实测可以。其他的方法如改mysql编码等稍显复杂,推荐以上方法。