Heim >Backend-Entwicklung >PHP-Tutorial >qq互联获取到的昵称怎么过滤图案等字符

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

WBOY
WBOYOriginal
2016-06-06 20:36:081158Durchsuche

网站使用的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这种,不知道能不能遇上。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn