<?php
$action = trim($_GET['action']);
if($action == "sub")
{
    $str = $_POST['dir'];


    $str=iconv('GBK','utf-8',$str);

//if(!preg_match("/^[".chr(0xa1)."-".chr(0xff)."A-Za-z0-9_]+$/",$str)) //GB2312汉字字母数字下划线正则表达式
    //preg_match("/^[\x{4e00}-\x{9fa5}]+$/u",$str)

    if(!preg_match("/^[\x{4e00}-\x{9fa5}]+$/u",$str)) //UTF-8汉字正则表达式
    {
        echo"<font color=red>您输入的[".$str."]含有违法字符</font>";
    }
    else
    {
        echo "<font color=green>您输入的[".$str."]完全合法,通过!</font>";
    }
}


?>
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<form method="POST" action="?action=sub">
    输入字符(数字,字母,汉字,下划线):
    <input type="text" name="dir" value="">
    <input type="submit" value="提交">
</form>
</body>
</html>