> php教程 > php手册 > 微信获取nickname中存在Emoji导致保存为空问题的解决

微信获取nickname中存在Emoji导致保存为空问题的解决

WBOY
풀어 주다: 2016-06-07 11:35:30
원래의
1726명이 탐색했습니다.

微信开发时候,有些用户使用Emoji表情作为用户昵称,导致数据库保存昵称时候不识别导致昵称为空,现在提出以下解决方案:
/**<br>   +----------------------------------------------------------<br>  * 过滤用户昵称里面的特殊字符<br>   +----------------------------------------------------------<br>  * @param string    $str   待输出的用户昵称<br>   +----------------------------------------------------------<br>  */<br> function jsonName($str) {<br>     if($str){<br>         $tmpStr = json_encode($str);<br>         $tmpStr2 = preg_replace("#(\\\ud[0-9a-f]{3})#ie","",$tmpStr);<br>         $return = json_decode($tmpStr2);<br>         if(!$return){<br>             return jsonName($return);<br>         }<br>     }else{<br>         $return = '微信用户-'.time();<br>     }    <br>     return $return;<br> }原理是判断nickname是否为空,如为空,则随机一个名称保存,如存在表情,过滤掉表情保存。
过滤表情那一行,我这里看到的表情json_encode之后前两位是ud,因此采用了这个,你们可以根据自己的实际情况修改。
还有就是,有人使用http://www.zhihu.com/question/37131723?sort=created这个解决方案,因人而异,大家都可以借鉴,同时如有更好的方案,请留言分享一下。

AD:真正免费,域名+虚机+企业邮箱=0元

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿