header("Content-Type:text/html;charset=utf-8");
//preg_match('/((?=[\x21-\x7e]+)[^A-Za-z0-9])/i','中文★中文。中文.中文',$matches);
preg_match('/[^\x{4e00}-\x{9fa5}a-zA-Z0-9]/u','中文★中文。中文.中文',$matches);
echo $matches[0];
上面这两句是匹配出符号。下面这句是匹配与替换。全角和半角的特殊字符都可以匹配到。
^表示排除的意思。\x{4e00}-\x{9fa5}意思是汉字为utf8编码的unicode编码范围。
echo preg_replace('/[^\x{4e00}-\x{9fa5}a-zA-Z0-9]/u',"<br />",'中文★中文。中文.中文');