只计算半角英数
preg_replace('#[^a-z0-9\x4E00-\x9FCF]#iuU', '--', $str);包含全角半角英数
preg_replace('#[^a-z0-9\xff10-\xff19\xff21-\xff3a\xff41-\xff5a\x4E00-\x9FCF]#iuU', '--', $str);
上述正则未包含全部汉字,所以会有误杀可能,但概率很低
\xff10-\xff19 全角0-9
\xff21-\xff3a 全角A-Z
\xff41-\xff5a 全角a-z
\x4E00-\x9FCF 主要汉字(少量古体、异体字不在此范围)