preg_replace("/[^\x{4e00}-\x{9fa5}^0-9^A-Z^a-z]+/u", '', $str);

替换中文、数字以及字母以外的字符。