PHP怎么处理移动端提交的表情字符?

robotsz 2014-10-02 12:09:11
现在移动端提供了很多表情,比如百度输入法中的表情。
很多表情在用php获取之后,属于无法识别的内容,在存入mysql的时候,会导致从表情位置开始,后面的内容都会丢失。

比如用户输入: 开始内容 [表情] 结束内容
用php获取,并存入mysql时,只能保存: 开始内容[


有什么办法能够把这些无法识别的表情删除,而不影响后面的内容呢?
比如上面的表情如果无法识别,那也希望能够存入mysql的是:开始内容[]结束内容
...全文
745 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
q960961298 2017-02-27
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
不升级也行 入库前 $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);
错误代码: HTTP ERROR 500,出现这个怎么办??PHP版本:5.2.17
jcyzone 2015-12-17
  • 打赏
  • 举报
回复
robotsz 2014-10-03
  • 打赏
  • 举报
回复
引用 7 楼 xuzuning 的回复:
$text = preg_replace_callback('/[\xf0-\xf7].{3}/', function($r) { return '';}, $text);
收到,谢谢版主
xuzuning 2014-10-03
  • 打赏
  • 举报
回复
$text = preg_replace_callback('/[\xf0-\xf7].{3}/', function($r) { return '';}, $text);
robotsz 2014-10-03
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
不升级也行 入库前 $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);
不太熟悉正则表达式,用了版主的给的方法,如果我只是想过滤掉这些表情符号,那return就写成 return ‘’;可以吗? 会不会把一些其它的符号给去掉了?
xuzuning 2014-10-02
  • 打赏
  • 举报
回复
需设置 mysql 的字符集为 utf8mb4
robotsz 2014-10-02
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
不升级也行 入库前 $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);
谢谢版主,我试一下
xuzuning 2014-10-02
  • 打赏
  • 举报
回复
不升级也行 入库前 $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);
robotsz 2014-10-02
  • 打赏
  • 举报
回复
好像是版本不够,貌似要升级到5.5以上,好麻烦啊
robotsz 2014-10-02
  • 打赏
  • 举报
回复
如果现在是utf8_general_ci,可以直接修改为utf8mb4吗? 另外,在myphpadmin中,看不到utf8mb4,该怎么修改?

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧