Sivo 悉见

php计算一个字符串中有多少个字母.汉字.数字.符号的函数

匿名 · 更新于 2013/11/1

-------------------------以下是php代码区域---------------------------

header("Content-type: text/html; charset=utf-8");

echo $str = "43fdf测试fdsfadaf43543543职工问防盗锁防盗锁5345gfdgd";

echo "<br>字符串的总长度".strlen($str);

preg_match_all("/[0-9]{1}/",$str,$arrNum);

preg_match_all("/[a-zA-Z]{1}/",$str,$arrAl);

preg_match_all("/([\x{4e00}-\x{9fa5}]){1}/u",$str,$arrCh);

echo "<br>数字个数:".count($arrNum[0])."<br>";

echo "字母个数:".count($arrAl[0])."<br>";

echo "中文个数:".count($arrCh[0])."<br>";

$str_tmp = $str;

for($i=0;$i<strlen($str);$i++){

    if(preg_match("/^[0-9]{1}/",$str_tmp)){ //判断字符串第一个字符是否为数字

        echo substr($str_tmp,0,1)."[是数字][$i]<br>";

        $str_tmp = substr($str_tmp,1);

    }else if(preg_match("/^[a-zA-Z]{1}/",$str_tmp)){ //判断字符串第一个字符是否为字母

        echo substr($str_tmp,0,1)."[是字母][$i]<br>";

        $str_tmp = substr($str_tmp,1);

    }else if(preg_match("/([\x{4e00}-\x{9fa5}]){1}/u",$str_tmp)){ //判断字符串是否为汉字

        echo substr($str_tmp,0,3)."[是汉字][$i]<br>";

        $str_tmp = substr($str_tmp,3);

        $i += 2;

    }

}

-------------------------以上是php代码区域---------------------------