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

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

WBOY
WBOYOriginal
2016-06-07 11:35:301721browse

微信开发时候,有些用户使用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元

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn