utf8编码表达式
/[\x{4e00}-\x{9fa5}a-zA-Z0-9]/u
非utf8编码表达式
/[\x80-\xFF]/PHP过滤只保留中文,英文以及数字的方法
以面已经给出的过滤规则的正则表达式,我们可以利用正则表达式编写一个函数,用于过滤字符串中的分外字符,只保留中文,英文以及数字三种类型的字符串。
函数如下:
<?phpfunction match_chinese($chars,$encoding='utf8'){ $pattern =($encoding=='utf8')?'/[\x{4e00}-\x{9fa5}a-zA-Z0-9]/u':'/[\x80-\xFF]/'; preg_match_all($pattern,$chars,$result); return join('',$result[0]);}?>
调用方法:
<?php$str = \"大众feiniaomy.com?墨初。zblog,?#$%^&())(&^\"大众;echo match_chinese($str);?>
输出结果:
feiniaomycom墨初zblog