$str = "php编程";
if (preg_match("/^[\x{4e00}-\x{9fa5}]+$/u",$str)) {
print("该字符串全部是中文");
} else {
print("该字符串不全部是中文");
}

知道了php中utf-8编码下用正则表达式匹配汉字的最终正确表达式——/^[\x{4e00}-\x{9fa5}]+$/u,

中文姓名的判断就是

$name = '张三';
if(!preg_match('/^[\x{4e00}-\x{9fa5}]{2,4}$/u', $name)){
  echo '您输入的姓名格式有误';exit();
}

原文http://www.jb51.net/article/43788.htm