>백엔드 개발 >PHP 튜토리얼 >qq互联获取到的昵称怎么过滤图案等字符

qq互联获取到的昵称怎么过滤图案等字符

WBOY
WBOY원래의
2016-06-06 20:36:081158검색

网站使用的qq互联注册新用户
默认是获取qq昵称做为用户名
代码如下
$user_array['member_name'] = $qquser_info['nickname'];

但很多QQ昵称都带有符号 火星文等,但网站程序只能识别数字 汉字,
怎样对$qquser_info['nickname']的值进行过滤
只保留其中的数字汉字部分

比如获取到的QQ昵称为 乄殘楓☆雪落ゞ,怎样进行过滤为殘楓雪落

回复内容:

网站使用的qq互联注册新用户
默认是获取qq昵称做为用户名
代码如下
$user_array['member_name'] = $qquser_info['nickname'];

但很多QQ昵称都带有符号 火星文等,但网站程序只能识别数字 汉字,
怎样对$qquser_info['nickname']的值进行过滤
只保留其中的数字汉字部分

比如获取到的QQ昵称为 乄殘楓☆雪落ゞ,怎样进行过滤为殘楓雪落

<code>$str = '*^%乄殘楓☆雪落as我123ゞ';
 echo preg_replace('|[^a-zA-Z0-9\x{4e00}-\x{9fa5}]|u', '', $str);
</code>

注意,这个字符无法去掉,因为他是个合法的汉字

一般做法是先获得每个字的码点,然后判断码点是否在汉字或者数字的码点范围内,至于汉字的码点范围可以参看链接描述

哈哈,我觉得让你的网站程序能识别更多的内容是正道。

试试一些拼音库。 能转的就过,不能转的就算了。类似duang这种,不知道能不能遇上。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.