微信接口获取昵称中的表情符的过滤

$tmpStr = '{"nickname":"\ue131\u6f6e\u978b\uff5e\u9ad8\u6893\u94b0\ud83d\udc5f\ud83d\udc5f\ud83d\udc5f"}';
$tmpStr = '{"nickname" : "\u00ce.LoVe.\ue022U-Y.t666666666\ue420"}';
$nickname = json_decode($tmpStr, true);
$tmpStr = json_encode($nickname['nickname']);
$tmpStr = preg_replace("#(\\\ud[0-9a-f]{3})|(\\\ue[0-9a-f]{3})#ie","",$tmpStr); //将emoji的unicode置为空,其他不动
$text = json_decode($tmpStr, true);

print_r($text);//你好 \ue415 hello 123


对于通过微信接口获取的昵称中,有时会带有表情符号,PC端必须通过找到对应的表情,以图片形式来展示。有时为了简单粗暴的解决,就是直接过滤掉这些表情符号,在固定区段的unicode的编码,这样也不会有筹码出现


其实有时如“\ud83d\udc5f”表情符号,这是为unicode编码形式,我们需要把它转化为16进制的编码,如\xF0\x9F\x91\x9F

再去对应符号中找到,可以从网上搜索php-emoji-master,这里包括了对应的编码转表情的方式

如果为了方便,可以不显示,那就用上面的粗暴的过虑

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值